linux 中可以用cut提取某一行的某一列数据吗? 如果可以怎么做?

 我来答
小米飞猫
推荐于2017-11-28 · 专注于IT监控领域技术
小米飞猫
采纳数:1653 获赞数:4811

向TA提问 私信TA
展开全部
可以。
cut -d" " -f2 filename
意思就是我以空格为列的分隔符,提取第二列

或者使用awk
awk '{print $2}' filename
awk默认以空格为分隔符,打印第二列
追问
这样出来的结果不止一行,我的意思是有没有办法,使结果只出现我指定哪行的指定那一列,就只有一行
追答
可以,不过这需要你总结筛选出规律。
比如是固定的行数,或者是与之相匹配的字串。
南京学而思it专用
2019-04-03
知道答主
回答量:7
采纳率:0%
帮助的人:4271
展开全部
用sed的方法是sed -n 'n,np' | awk '{print $X}'
第2个与第3个n表示你要打印第几行,比如要打印5-8行就是sed -n '5,8p' filename
你想打印第3行就是sed -n '3,3p' filename
|管道符就是把sed输出的值输入给awk,$X里的X表示你想输出的第几个字段,awk默认是以空格为分隔符的,要想指定分隔符就是-F 。 比如以 , 作为分隔符就写作awk -F "," '{print $X}'
还有一种方法不用sed也可以锁定某一行 比如我想锁定/etc/passwd的第10行
语句就是head -10 /etc/passwd | tail -1
如果想打印第十行的以‘:’分割的第2个字段,那么执行语句就是
head -10 /etc/passwd | tail -1 |awk -F: '{print $2}'
如果想输出/etc/passwd第二行第1-5个字符
sed -n 2p /etc/passwd |cut -c1-5
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
victor0725
2012-05-27 · TA获得超过1060个赞
知道小有建树答主
回答量:479
采纳率:0%
帮助的人:277万
展开全部
可以 你可以使用sed 然后在结合AWK就好了
追问
能说说具体的过程吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
twtcom001
2012-05-29 · 超过18用户采纳过TA的回答
知道答主
回答量:260
采纳率:0%
帮助的人:76.5万
展开全部
看看 man cut
追问
能具体说说吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式