awk脚本从多个字段读取数据

时间:2015-10-07 20:54:59

标签: awk

我正在尝试创建一个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

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