awk如何向shell传值
今天写脚本,遇到awk脚本向shell传参的情况,上网谷歌一下,发现都有些麻烦,通过管道,通过eval,感觉都很复杂。于是想到用read来试一下。
首先构造一个测试文件test.txt,里面的内容是1 2 3。
一开始尝试
awk '{print $1 $2 $3}' test.txt | read a b c
可是echo $a,发现为空,失败了。
试了下
echo "1 2 3" | read a b c
也无法给a b c 赋值
看来read不是这样用的,怒谷歌之,在stackoverflow找到一个类似的问题(stackoverflow真神器啊!)
链接:http://stackoverflow.com/questions/374687/why-is-echo-foo-read-a-echo-a-not-working-as-expected
里面有答主提到,
read a < <(echo foo)
可以对a赋值,试了一下,果然可以。
然后尝试
read a b c< &

本文介绍了awk脚本如何向shell传递参数。通过使用read命令和awk的输出,可以将awk处理的数据赋值给shell变量。文章通过示例说明了如何正确地使用awk和read进行交互,强调了在使用sh和bash之间的区别。
最低0.47元/天 解锁文章
1567

被折叠的 条评论
为什么被折叠?



