awk默认分隔符空间将两个字段之间的任意空间量视为等效字段。
echo "1 2"|awk '{for (i=1;i<=NF;i++) print $i}'
#which gives the result (two spaces between 1 and 2)
1
2
如何添加&#34; =&#34;这个现有的分隔符?我尝试了以下内容,并开始考虑&#34;单&#34;空格字符作为分隔符并破坏了上述结果。
echo "1 2"|awk -F"[ |=]" '{for (i=1;i<=NF;i++) print $i}'
#which gives the result
1
2
如何在此处提供任何数量的空间作为分隔符?提前谢谢。
答案 0 :(得分:2)
您可以将正则表达式指定为分隔符:
echo "1 2"|awk -F"[ |=]+" '{for (i=1;i<=NF;i++) print $i}'
这也意味着
echo "1 2 3==5"|awk -F"[ |=]+" '{for (i=1;i<=NF;i++) print $i}'
会打印
1
2
3
5