我正在尝试创建一个awk脚本来从txt文件中读取数据并创建输出脚本。如何从其他列读取数据?每行可能有更多列。
cat test.txt | awk -F" " '{print "echo "$1"\nprint "$2}'
的test.txt
test1 1 2 3
test2 2
test3 3 4
test4 4 5 6 7
输出:
echo test1
echo 1
echo 2
echo 3
echo test2
echo 2
答案 0 :(得分:0)
要打印每行上具有可变数量字段的文件中的所有字段,您需要循环遍历awk中的NF变量,该变量保存该行上的字段数。
另外,awk的分隔符默认为空格,因此不需要。
$ cat test.txt
test1 1 2 3
test2 2
test3 3 4
test4 4 5 6 7
$ awk '{for (i = 1; i <= NF; i++) print "echo "$i}' test.txt
echo test1
echo 1
echo 2
echo 3
echo test2
echo 2
echo test3
echo 3
echo 4
echo test4
echo 4
echo 5
echo 6
echo 7
你在那里也使用了无用的猫,awk可以把文件作为参数。
答案 1 :(得分:0)
awk '{print "echo "$1; for (i = 2; i <= NF; i++) print "print "$i}' test2.txt