繁体   English   中英

在shell脚本中使用gawk

[英]using gawk in a shell script

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

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

这当然不起作用。 想法?

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

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

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

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

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

例如:

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

如果(例如)你发现Bash的字符串处理工具有点过于神秘,那就更方便了。

用awk / gawk示例的shell代码

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

$ sh test.sh
...now
$ 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM