在 shell 脚本中使用 gawk

发布于 2024-08-04 12:39:58 字数 148 浏览 6 评论 0原文

嗨,我想在 for 循环中使用 gawk。像这样的事情:

for i in gawk {print $1} | tr '\n' ' '
do something using $i

这当然不起作用。有想法吗?

Hi I want to use gawk in a for loop. Something like this:

for i in gawk {print $1} | tr '\n' ' '
do something using $i

this isn't working of course. Ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

梦境 2024-08-11 12:39:58

您缺少反引号或 $(...) 来评估 awk 命令。

for i in $(ls -l | gawk '{print $1}' | tr '\n' ' ')
do
       echo $i
done

尽管不需要最后一个 tr 命令,因为 $(...) 命令隐式的输出将在此上下文中将换行符转换为空格。

You are missing backquotes or $(...) to evaluate the awk command.

for i in $(ls -l | gawk '{print $1}' | tr '\n' ' ')
do
       echo $i
done

Although the last tr command is not needed since the output from a $(...) command implicit will have newlines converted to space in this context.

喜爱纠缠 2024-08-11 12:39:58

在上面提供的答案中,gawk 是子例程,bash 是驱动程序。

另一种方法是使用内置的系统命令使gawk成为驱动程序。

例如:

ls | gawk '/^a/ { system("ls -lsa " $1)}'

如果(例如)您发现 Bash 的字符串处理工具有点太神秘了,那么这会更方便。

In the answers offered above, gawk is the sub-routine and bash is the driver.

Another approach is to make gawk the driver using its built in system command.

For example:

ls | gawk '/^a/ { system("ls -lsa " $1)}'

which is handier if (e.g.) you find Bash's string handling tools a little too arcane.

单身情人 2024-08-11 12:39:58

带有 awk / gawk 示例的 shell 代码

for i in `echo how now | gawk '/how/ { print $2 }'`; do
    echo ...$i
done

$ sh test.sh
...now
$ 

shell code with awk / gawk example

for i in `echo how now | gawk '/how/ { print $2 }'`; do
    echo ...$i
done

and

$ sh test.sh
...now
$ 
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文