如何使用awk创建下面的输出?我无法为逗号分隔的数据创建循环。awk脚本来读取txt文件
awk '{print "echo "$1"\nadd "$2"\nremove "$3"\nlist "$4}' test.txt
的test.txt
1 abc,bcd xyz,yza qwe,wer
2 abc xyz qwe
3 abc xyz,yza qwe,wer
4 abc,bcd xyz wer
输出:
echo 1
add abc
add bcd
remove xyz
remove yza
list qwe
list wer
echo 2
add abc
remove xyz
list qwe
echo 3
add abc
remove xyz
remove yza
list qwe
list wer
echo 4
add abc
add bcd
remove xyz
list wer
谢谢karakfa。你能解释第二个awk语句吗?它适用于示例输入,但我试图修改此为我的原始输入。 – user5420138
那么,它假定你将有1或2个子字段。第二awk通过空格和逗号分割字段。对于2个子场,NF将是3,将其余分成两行。这将适用于样本集,但更多子字段可能难以扩展。如果这是您的输入,循环解决方案可能会更好。 – karakfa
这里是我的输入文件中的一行:“abc bcd cde def:fed fed:abc,bcd”我需要将fed:abc,bcd分割为两行:“abc bcd cde def:fed fed:abc”“ abc bcd cde def:fed fed:bcd“ – user5420138