如何使用 string
和另一个 character
作为awk中的同时分隔符?
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
打印为输出?考虑输入,如上例所示。
答案 0 :(得分:3)
您可以使用简单的替换
$ 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