我得到了这些数据:
aaa:123 bbb:**234** ccc:345
eee:435 ddd:**231** xxx:897
...
Run Code Online (Sandbox Code Playgroud)
如何使用Awk获得粗体部分?
Mic*_*ber 11
获取部分字段的一般方法是使用split:
awk -F':' '{ split($3, subfield, " "); print subfield[1] }'
Run Code Online (Sandbox Code Playgroud)
其他人提到使用正则表达式将空格和冒号都视为字段分隔符.这是好的,只要空格的数量是可预测的.但它会失败,例如,对于这样的输入:
aaa:123 bbb:234 ccc:345
eee:435 ddd:231 xxx:897
fff:214 ads 23423 fds:183 eee:234
Run Code Online (Sandbox Code Playgroud)
选择哪种方法更符合您的数据.
使用空格的正则表达式加上冒号和计数字段:
awk -F'[[:blank:]:]+' '{ print $4 }' infile
Run Code Online (Sandbox Code Playgroud)
它产生:
234
231
Run Code Online (Sandbox Code Playgroud)