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

2024-11-19 11:17:32
推荐回答(4个)
回答1:

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

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

回答2:

用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

回答3:

可以 你可以使用sed 然后在结合AWK就好了

回答4:

看看 man cut