我需要对某个文件的每行执行一个命令。例如:
file1.txt 100 4
file2.txt 19 8
所以我的 awk
脚本需要执行类似的东西
command $1 $2 $3
并保存 command $1 $2 $3
的输出,因此 system()
将不起作用,getline
也不会。 (如果我这样做,我就无法通过管道输出。)
这个问题的限制是只使用awk
。 (我已经有了 bashscriot + awk 的解决方案...但我只想要 awk...只是想了解更多相关信息)
最佳答案
使用 getline
有什么问题?
$ ./test.awk test.txt # ls -F | grep test test.awk* test.txt # cat test.txt | nl 1 ls -F | grep test 2 cat test.txt | nl 3 cat test.awk # cat test.awk #!/usr/bin/awk -f { cmd[NR] = $0 while ($0 | getline line) output[NR] = output[NR] line RS } END { for (i in cmd) print "# " cmd[i] ORS output[i] }
关于linux - awk 将命令输出保存到变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1864529/