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

如题所述

可以。
cut -d" " -f2 filename
意思就是我以空格为列的分隔符,提取第二列

或者使用awk
awk '{print $2}' filename
awk默认以空格为分隔符,打印第二列追问

这样出来的结果不止一行,我的意思是有没有办法,使结果只出现我指定哪行的指定那一列,就只有一行

追答

可以,不过这需要你总结筛选出规律。
比如是固定的行数,或者是与之相匹配的字串。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-03
用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
第2个回答  2012-05-27
可以 你可以使用sed 然后在结合AWK就好了追问

能说说具体的过程吗?

第3个回答  2012-05-29
看看 man cut追问

能具体说说吗?

相似回答