我的命令的输出类似于:
1540 "A B"
6 "C"
119 "D"
第一列始终是一个数字,后跟一个空格,然后是一个双引号字符串。
我的目的是只获取第二列,例如:
"A B"
"C"
"D"
我打算使用<some_command> | awk '{print $2}'
来实现这一点。但问题是,第二列中的一些值包含空格,这恰好是awk
用来分隔字段的默认分隔符。因此,输出是混乱的:
"A
"C"
"D"
如何干净地获取第二列的值(带有成对的引号)?
发布于 2013-04-22 06:57:18
或者使用sed & regex。
<some_command> | sed 's/^.* \(".*"$\)/\1/'
发布于 2013-04-22 06:51:46
使用-F [field separator]
拆分"
上的行:
awk -F '"' '{print $2}' your_input_file
或者用于来自管道的输入
<some_command> | awk -F '"' '{print $2}'
输出:
A B
C
D
发布于 2017-05-03 23:03:03
这应该可以从命令输出"docker images“中获得特定的列:
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 16.04 12543ced0f6f 10 months ago 122 MB
ubuntu latest 12543ced0f6f 10 months ago 122 MB
selenium/standalone-firefox-debug 2.53.0 9f3bab6e046f 12 months ago 613 MB
selenium/node-firefox-debug 2.53.0 d82f2ab74db7 12 months ago 613 MB
docker images | awk '{print $3}'
IMAGE
12543ced0f6f
12543ced0f6f
9f3bab6e046f
d82f2ab74db7
这将打印第三列
https://stackoverflow.com/questions/16136943
复制相似问题