linux中查詢某目錄下以點開頭的檔案長列表展示

2021-09-08 18:15:36 字數 846 閱讀 9785

正常檢視所有檔案命令,-a表示可以檢視隱藏檔案

ls -a

通過查詢命令,過濾出點開頭的檔案

grep "^\..*"

其中,^\. 表示以點開頭,因為點在linux中是特殊字元(需要反斜槓轉義),表示任意某個字元,必須要匹配乙個字元,空格也行,空格也表示乙個字元,但是不能是空, * 表示某字元匹配0次或者多次,.* 連在一起就表示任意長度的字元

如果少了乙個點是^\.* ,表示轉義後的點符號匹配0次或多次,所以是不能只查出點開頭的檔案

正確命令是: ls -a | grep 「^\..*」

但是如果想以長列表的格式輸出呢,加個-l選項麼?

經過測試 ls -al | grep 「^\..*」 沒有任何輸出,原因是 ls -al 通過管道傳過去的是長列**式,每行資料不只是檔名,還有檔案許可權,屬主,大小,時間等資訊,就不能以上面的條件進行過濾了

通過觀察長列**式,點開頭的檔案都有時間引數,「數字+空格+點」這個格式就能匹配出點開頭的檔案

正確命令是:ls -al | grep 「[0-9] \.」

但是這裡有個小缺陷,如果檔案中有data123 .log類似於這樣格式的檔案,那上面的命令就失效了

再來介紹個利用gawk進行過濾的方法

前面還是ls -al 通過管道傳遞輸出給gawk

gawk逐行處理資料,預設以空格為分隔符,對每行進行切割,用$1取第乙個字段,$2取第二個字段,以此類推,$0 表示本行的原資料,我們只要匹配檔名對應的 $9 字段即可,$9 ~ /^\./ 其中~表示精確匹配,篇幅有限,關於gawk其他的語法格式不再贅述

正確的命令是: ls -al | gawk 』 $9 ~ /^\./』

菜鳥手書,歡迎指正

linux下查詢某目錄下所有檔案包含某字串的命令

linux下查詢某目錄下所有檔案包含某字串的命令 從檔案內容查詢匹配指定字串的行 grep 被查詢的字串 檔名 從檔案內容查詢與正規表示式匹配的行 grep e 正規表示式 檔名 查詢時不區分大小寫 grep i 被查詢的字串 檔名 查詢匹配的行數 grep c 被查詢的字串 檔名 從檔案內容查詢不...

linux下查詢某目錄下所有檔案包含某字串的命令

linux下查詢某目錄下所有檔案包含某字串的命令 從檔案內容查詢匹配指定字串的行 grep 被查詢的字串 檔名 從檔案內容查詢與正規表示式匹配的行 grep e 正規表示式 檔名 查詢時不區分大小寫 grep i 被查詢的字串 檔名 查詢匹配的行數 grep c 被查詢的字串 檔名 從檔案內容查詢不...

linux下查詢某目錄下所有檔案包含某字串的命令

linux下查詢某目錄下所有檔案包含某字串的命令 linux下查詢某目錄下所有檔案包含某字串的命令 從檔案內容查詢匹配指定字串的行 grep 被查詢的字串 檔名 www.2cto.com 從檔案內容查詢與正規表示式匹配的行 grep e 正規表示式 檔名 查詢時不區分大小寫 grep i 被查詢的字...