awk用法:取列表最后一列

很多时候我们有需要取出文本中的最后一列,或者比如 ls -l 最后一列为文件名,这里可以使用多种方法取出最后一列;

举例说明:

[root@testserver tmp]# ls -l

总用量 1000

-rw-r--r-- 1 root  root  925223 6月  15 18:06 0615.txt

-rw-r--r-- 1 root  root      84 6月  15 15:07 dir.txt

-rw-r--r-- 1 root  root      86 6月  14 12:00 for.sh

-rw-r--r-- 1 root  root     715 6月  14 12:09 G.txt

-rw-r--r-- 1 root  root    1614 6月  14 12:07 M.txt

-rw-r--r-- 1 root  root   37763 6月  14 12:00 size.txt

-rw-r--r-- 1 root  root   35579 6月  14 11:51 test.txt

方法1:

直接使用awk $NF取最后一列,问题来了,注意取出来的第一行,包括ls -l 显示的第一行总用量 1000这个数值;

[root@testserver tmp]# ls -l|awk '{print $NF}'1000
0615.txt
dir.txt
for.sh
G.txt
M.txt
size.txt
test.txt

方法2:

同样awk $NF,加一个条件NR>1,跳过第一行

[root@testserver tmp]# ls -l|awk 'NR>1 {print $NF}'0615.txtdir.txtfor.shG.txtM.txtsize.txttest.txt

方法3:

使用awk next函数,NR==1 跳过第一行

[root@testserver tmp]# ls -l|awk 'NR==1 {next} {print $NF}'0615.txtdir.txtfor.shG.txtM.txtsize.txttest.txt

方法4:

可以写一个for循环,并定向到一个文件中

可以使用for循环取文件列表  for i in `ls`;do echo $i>>dir.txt;done;

[root@testserver tmp]# cat dir.txt 0615.txtdir.txtfor.shG.txtM.txtsize.txttest.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是你的春哥!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值