我正在尝试使用 awk 来剪切多字符分隔符
echo 'f1##f2' |awk -F '##' '{print $2}'
Run Code Online (Sandbox Code Playgroud)
它打印f2. 然而
echo 'f1||f2' |awk -F '||' '{print $1}'
Run Code Online (Sandbox Code Playgroud)
打印f1||f2。
任何人都可以解释发生了什么?
Rom*_*est 12
|在您的情况下,垂直条字符被视为特殊字符,应进行转义:
echo "f1||f2" |awk -F'\\|\\|' '{print $1}'
f1
Run Code Online (Sandbox Code Playgroud)
作为替代方案,您可以放入|字符类:
echo "f1||f2||f3" |awk -F'[|]{2}' '{print $3}'
f3
Run Code Online (Sandbox Code Playgroud)