1. 程式人生 > >文本操作 (ls,grep,head,cut)

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

文本操作

需求

從一個目錄中取出最近訪問過的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)