首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从命令输出中获取第二列?

如何从命令输出中获取第二列?
EN

Stack Overflow用户
提问于 2013-04-22 06:36:41
回答 7查看 407K关注 0票数 181

我的命令的输出类似于:

代码语言:javascript
复制
1540 "A B"
   6 "C"
 119 "D"

第一列始终是一个数字,后跟一个空格,然后是一个双引号字符串。

我的目的是只获取第二列,例如:

代码语言:javascript
复制
"A B"
"C"
"D"

我打算使用<some_command> | awk '{print $2}'来实现这一点。但问题是,第二列中的一些值包含空格,这恰好是awk用来分隔字段的默认分隔符。因此,输出是混乱的:

代码语言:javascript
复制
"A
"C"
"D"

如何干净地获取第二列的值(带有成对的引号)?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-04-22 06:57:18

或者使用sed & regex。

代码语言:javascript
复制
<some_command> | sed 's/^.* \(".*"$\)/\1/'
票数 32
EN

Stack Overflow用户

发布于 2013-04-22 06:51:46

使用-F [field separator]拆分"上的行:

代码语言:javascript
复制
awk -F '"' '{print $2}' your_input_file

或者用于来自管道的输入

代码语言:javascript
复制
<some_command> | awk -F '"' '{print $2}'

输出:

代码语言:javascript
复制
A B
C
D
票数 235
EN

Stack Overflow用户

发布于 2017-05-03 23:03:03

这应该可以从命令输出"docker images“中获得特定的列:

代码语言:javascript
复制
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

这将打印第三列

票数 60
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16136943

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档