Unix awk--向默认的空格分隔符添加新的分隔符

Unix awk--向默认的空格分隔符添加新的分隔符,unix,awk,Unix,Awk,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 echo“12”| awk'{for(i=1;i您可以指定一个正则表达式作为分隔符: echo "1 2"|awk -F"[ |=]+" '{for (i=1;i<=NF;i++) print $i}' 太棒了!

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

echo“12”| awk'{for(i=1;i您可以指定一个正则表达式作为分隔符:

 echo "1  2"|awk -F"[ |=]+" '{for (i=1;i<=NF;i++) print $i}'

太棒了!是的,我从另一个线程读到了关于定界符的正则表达式,但它似乎在这里起到了作用。它处理多个空格、多个“=”符号(顺便说一句,在第二个例子中非常好地说明了这两个点)。在这里,+具体做什么?
+
用于指定正则表达式的一个或多个实例。因此它将组合多个分隔符。另一个示例:
echo“1==|=2”| awk-F“[|=]+”{for(i=1;i)
 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