文本操作 (ls,grep,head,cut)
阿新 • • 發佈:2018-03-21
文本操作需求
從一個目錄中取出最近訪問過的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)