如何在 awk 中同时使用 string
和另一个 character
作为分隔符?
sdlcb@ubuntu:~/AMD_C/SO$ echo "111:222text333:444" | awk -F ':' '{print $2}'
222text333
sdlcb@ubuntu:~/AMD_C/SO$ echo "111:222text333:444" | awk -F "text" '{print $2}'
333:444
那么问题来了,如何同时使用“
text
”和“:
”作为分隔符,让{print $2}
打印222
作为输出呢?考虑上面示例中的输入。 最佳答案
您可以使用简单的交替
$ echo "111:222text333:444" | awk -F "text|:" '{print $2}'
222
有什么作用
-F "text|:"
将字段分隔符设置为 text
或 :
测试
为了确保这正确分隔字段
$echo "111:222text333:444" | awk -F "text|:" '{print $1,$2,$3,$4}'
111 222 333 444
编辑
如果要使用
|
作为分隔符,请将 |
转义为$ echo "111:222text333:444|hello" | awk -F '\\||text|:' '{print $1,$2,$3,$4,$5}'
111 222 333 444 hello
关于linux - 如何将 awk 分隔符设置为字符串或字符?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27129822/