awk 不会使用 '||'作为字段分隔符

awk 不会使用 '||'作为字段分隔符

我正在尝试使用 awk 来剪切多字符分隔符

echo 'f1##f2' |awk -F '##' '{print $2}'

它打印f2.然而

echo 'f1||f2' |awk -F '||' '{print $1}'

印刷f1||f2

谁能解释一下发生了什么事吗?

答案1

在您的情况下,垂直条形字符|被视为特殊字符,应该转义:

echo "f1||f2" |awk -F'\\|\\|' '{print $1}'
f1

作为替代方案,您可以将其放入|字符类中:

echo "f1||f2||f3" |awk -F'[|]{2}' '{print $3}'
f3

相关内容