Linux文本內容管理和檔案查找
1、文本內容管理命令
1.1文本內容排序
sort //默認升序排序,不是按數值大小排序的
-n //根據數值大小進行排序
-r //逆序排序
-t //欄位分隔符
-k //以哪個欄位為關鍵字進行排序
-u //去重,排序后相同的行只顯示一次
-f //排序時忽略字符大小寫
uniq //將重復的行只顯示一遍(連續且完全相同方為重復)
-c //顯示檔案中行重復的次數
-d //只顯示重復的行
-u //只顯示未重復的行
1.2文本內容統計
//文本內容統計
wc(word count)
-l //顯示行數
-w //顯示單詞數
-c //顯示位元組數
//檔案大小統計
du //查看檔案或目錄占用的磁盤空間大小
-h //以人類友好的方式顯示大小
-s //顯示總的占用空間大小
//磁盤空間統計
df //報告檔案系統磁盤空間使用情況
-h //以人類友好的方式顯示大小
-i //顯示inode資訊
-T //查看檔案系統型別
1.3文本內容過濾
cut按列截取文本內容
cut //截取文本內容
-d '' //指定欄位分隔符,默認是空格
-f //指定要顯示的欄位
-f 1,3 //顯示第1個欄位和第3個欄位
-f 1-3 //顯示第1個欄位到第3個欄位
awk文本和資料進行處理的編程語言
awk //awk文本和資料進行處理的編程語言
語法:awk [選項] '匹配模式 {執行動作}'
-F '' //指定分隔符,可以使用正則運算式[]指定多個分隔符
-v OFS='' //指定列印時的分隔符
變數:
NF //行數
NR //列數
執行動作:
'{print $#}' //選擇列印第#列,$0代表所有列,$NF代表最后1列
匹配模式:
'/關鍵字/' //匹配關鍵字的行,支持正則運算式
'/關鍵字1/,/關鍵字2/' //匹配從關鍵字1到關鍵字2中間所有的行
'NR==1' //匹配第1行
'NR>=10' //匹配行數大于10的所有行并顯示行號
'$1==1' //匹配第1列的值等于1的行
'$1>=10 && $1<=20' //匹配第1列的值大于等于10并小于等于20的行
'$1>=10 || $3!=20' //匹配第1列的值大于等于10或者第3列的值不等于20的行
'$NF~"/sbin/nologin"' //匹配最后1列字符為/sbin/nologin的行
'$NF~!"/sbin/nologin"' //匹配最后1列字符不為/sbin/nologin的行
語法示例:
awk -F ':' '{print "第一列:"$1,"第二列:"$2,"第三列:"$3}' /etc/passwd
//使用:為分隔符分割/etc/passwd檔案中的內容,按照想要的格式列印出來
awk -F ':' -v OFS='-' '{print $1,$2,$3}' /etc/passwd
//使用:為分隔符分割/etc/passwd檔案中的內容,按照想要的格式列印出來
grep文本過濾
grep //搜索文本內容,并將匹配的內容所在一整行都顯示出來
//支持使用正則運算式來過濾文本
--color //匹配到的內容高亮顯示
-i //忽略大小寫
-w //強制模式,完全匹配字詞
-n //顯示匹配到的內容的行號
-c //顯示匹配到的內容一共有多少行
-v //顯示沒有被模式匹配到的行
-o //只顯示被模式匹配到的字串
-E //使用擴展正則運算式,grep -E相當于使用egrep
-q //靜默模式,不向螢屏輸出任何資訊
-A 1 //被模式匹配到的內容以及其后面1行的內容都顯示出來
-B 1 //被模式匹配到的內容以及其前面1行的內容都顯示出來
-C 1 //被模式匹配到的內容以及其前后的行各顯示1行
egrep //基于正則運算式查找檔案內容
fgrep //不支持正則運算式,執行速度快
sed文本過濾和編輯器
sed //基于行的過濾和轉換文本的流編輯器
語法:sed [選項] [過濾條件和sed命令] [輸入檔案]
-n //取消默認sed輸出,用于過濾文本內容
-r //使用擴展正則運算式
-e //一條陳述句執行多條sed命令
-i //修改檔案內容
2、檔案查找命令
find //實時查找,精確性強,遍歷指定目錄中所有檔案完成查找,
//查找速度慢,支持眾多查找標準,
語法:
find 查找路徑 [OPTION...] [查找標準] [查找到以后的處理動作]
查找路徑,默認為當前目錄
查找標準,默認為指定路徑下的所有檔案
-name 'filename' //對檔案名作精確匹配.支持glob通配符機制
-iname 'filename' //檔案名匹配時不區分大小寫
-regex pattern //基于正則運算式進行檔案名匹配,以pattern匹配整個檔案路徑字串,而不僅僅是檔案名稱
-user username //根據屬主來查找
-group groupname //根據屬組來查找
-uid //根據UID進行查找,當用戶被洗掉以后檔案的屬主會變為此用戶的UID
-gid //根據GID進行查找,當用戶被洗掉以后檔案的屬組會變為此用戶的GID
-nouser //查找沒有屬主的檔案.用戶被洗掉的情況下產生的檔案,只有uid沒有屬主
-nogroup //查找沒有屬組的檔案.組被洗掉的情況下產生的檔案,只有gid沒有屬組
-type //根據檔案型別來查找(f,d,c,b,l,p,s)
-size //根據檔案大小進行查找,如1k、1M,+10k、+10M,-1k、-1M,+表示大于,-表示小于
-mtime //修改時間
-ctime //改變時間
-atime //訪問時間
+5 //5天前
-5 //5天以內
-mmin //多少分鐘修改過
-cmin //多少分鐘改變過
-amin //多少分鐘訪問過
+5 //5分鐘前
-5 //5分鐘以內
-perm mode //根據權限精確查找
-perm -mode //9位權限中非0的權限必須完全匹配
-perm /mode //9位權限中非0的權限任何一位匹配即可
//組合條件:
-a //多條件同時滿足(與)
-o //多條件滿足其中一個即可(或)
-not //滿足前面不滿足后面(非)
! // ! 和-not含義一樣
//處理動作:默認為顯示到螢屏上
-print //顯示
-ls //類似ls -l的形式顯示每一個檔案的詳細資訊
-fls /path/to/somefile //查找到的所有檔案的長格式資訊保存至指定檔案中
-delete //洗掉查找到的檔案
-ok COMMAND {} \; //對查找到的每個檔案執行COMMAND,每次操作都需要用戶確認
-exec COMMAND {} \; //對查找到的每個檔案執行COMMAND,操作不需要確認
注意:find傳遞查找到的檔案至后面指定的命令時,查找到所有符合條件的檔案一次性傳遞給后面的命令,而有些命令不能接受過多引數,此時命令執行可能會失敗,而xargs可規避此問題,
| xargs //通過管道將查找到的內容給xargs處理,xargs會把內容進行拆分,拆分完畢后將內容作為引數交給后面的命令執行,
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/501032.html
標籤:其他
上一篇:Linux —vim 編輯器
下一篇:docker
