我正在尝试使用 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