码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-03-21 11:40:32      阅读:147      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!