首页 > 其他 > 详细

文本操作 (ls,grep,head,cut)

时间:2018-03-21 11:26:25      阅读:200      评论:0      收藏:0      [点我收藏+]
需求

从一个目录中取出最近访问过的5个普通文件,并且要求输出文件名和最后的访问时间

解决方案

通过ls -t和-u根据文件的访问时间进行排序,用|grep过滤出普通文件,在用head过滤出文件列表的前五行,最后用cut剪切无关的数据,只保留访问时间和文件名

[root@iZ2ze7m4apicbnc8vvlx1cZ proc]# ls -lut |grep "^-" |head -5 |cut -c41-

运行结果

[root@iZ2ze7m4apicbnc8vvlx1cZ proc]# ls -lut |grep "^-" |head -5 |cut -c41-
    0 Mar 21 10:44 buddyinfo
    0 Mar 21 10:44 cgroups
    0 Mar 21 10:44 cmdline
    0 Mar 21 10:44 consoles
    0 Mar 21 10:44 cpuinfo

讨论

  • ls -t 根据文件的修改时间进行排序
  • ls -u可以显示出文件的最后访问时间,并让-t基于访问时间来排序
  • ^-是一个正则表达式,以横杠开头,这里表示普通文件
  • cut -c 指定了cut命令保留并输出那些字符
  • 下面是通过横杠-指定范围,还可以使用逗号,指定范围
范围 描述
N 第N个字符
N- 从第N个字符一直到当前行结束
N-M 从第N个字符一直到第M个字符
-M 从第一个字符一直到第M个字符

文本操作 (ls,grep,head,cut)

原文:http://blog.51cto.com/akui2521/2089318

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!