很多时候我们有需要取出文本中的最后一列,或者比如 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循环,并定向到一个文件中文章来源:https://www.toymoban.com/news/detail-440315.html
可以使用for循环取文件列表 for i in `ls`;do echo $i>>dir.txt;done;文章来源地址https://www.toymoban.com/news/detail-440315.html
[root@testserver tmp]# cat dir.txt 0615.txtdir.txtfor.shG.txtM.txtsize.txttest.txt
到了这里,关于awk用法:取列表最后一列的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!