文字處理: cut,sort,uniq,grep
cut:
-d: 指定字段分隔符,預設是空格
-f: 指定要顯示的字段
-f1 顯示第乙個字段
-f 1,3 顯示第乙個和第三個
-f 1-3 顯示第乙個到第三個
--complement: 反向列選擇
-c:僅顯示行中指定範圍的字元
例子cut -c1-3 /etc/passwd
cut -d: -f1,3 /etc/passwd
sort
-n:數值排序
-r:降序
-t:字段分隔符
-k:表示以那個字段進行排序
-u:排序後相同的行只顯示一次
-o:排序後的結果存入指定的檔案
-f:忽略字元大小寫
-b:忽略每行前面開始出的空格字元
例子sort -t: -k3 /etc/passwd
sort -t: -k4 -n /etc/passwd
seq 10 |sort -rn
uniq:
-c:顯示檔案中行重複的次數
-d:只顯示重複的行
grep
是一種強大的文字搜尋工具,它能使用正規表示式搜尋文字,並把匹配的行列印出來。
egrep和fgrep都是grep的擴充套件,命令只跟grep有很小不同
-c 或 --count : 計算符合樣式的列數。
-e《範本樣式》 或 --regexp=《範本樣式》 : 指定字串做為查詢檔案內容的樣式。
-e 或 --extended-regexp : 將樣式為延伸的普通表示法來使用。
-i 或 --ignore-case : 忽略字元大小寫的差別
-n 或 --line-number : 在顯示符合樣式的那一行之前,標示出該行的列數編號。
-q 或 --quiet或--silent : 不顯示任何資訊。
-r 或 --recursive : 此引數的效果和指定"-d recurse"引數相同。
-v 或 --revert-match : 顯示不包含匹配文字的所有行。
-a《顯示行數》 或 --after-context=《顯示行數》 : 除了顯示符合範本樣式的那一列之外,並顯示該行之後的內容。
-b《顯示行數》 或 --before-context=《顯示行數》 : 除了顯示符合樣式的那一行之外,並顯示該行之前的內容。
-c《顯示行數》 或 --context=《顯示行數》或-《顯示行數》 :
搜尋root的行
grep -n 'root' /etc/passwd
搜尋沒有root和行(-v 方向選擇)
grep -v 'root' /etc/passwd
利用搜尋集合字元 匹配 roat robt roct
grep -n 'r[abc]ot' /etc/passwd
搜尋oo前面沒有g的(^表示排除)
grep -n '[^g]oo' /etc/passwd
搜尋以小寫字母開頭
grep -n '^[a-z]' /etc/passwd
搜尋開頭不是英文本母的行
grep -n '^[^a-za-z]' /etc/passwd
搜尋以點結尾的行
grep -n '\.$' /etc/passwd
搜尋空行
grep -n '^$' /etc/passwd
搜尋非空行
grep -vn '^$' /etc/passwd
搜尋兩個以上的oo字串
grep -n 'ooo*' /etc/passwd
搜尋包含兩個o的字串的行
grep -n 'o\' /etc/passwd
搜尋兩個以上o的
grep -n 'go\g' /etc/passwd
去除空白後或者以#開頭
egrep -v '^$|^#' /etc/passwd or grep -ev '^$|^#' /etc/passwd
統計檔案或者文字中包含匹配字串的行數 -c
grep -c "root" /etc/passwd
搜尋多個檔案並查詢匹配文字
grep -c root /etc/passwd /root/passwd_test
在多級目錄中對文字進行遞迴搜尋 -r
grep -r 'root' /etc/
忽略匹配樣式中的字元大小寫
grep -i 'root' passwd_test
# 制動多個匹配樣式
grep -e root -e www passwd_test
#只在目錄中所有的.php和.html檔案中遞迴搜尋字元"main()"
grep "main()" . -r --include *.
#在搜尋結果中排除所有readme檔案
grep "main()" . -r --exclude "readme"
#在搜尋結果中排除filelist檔案列表裡的檔案
grep "main()" . -r --exclude-from filelist
#grep靜默輸出
grep -q root passwd_test
echo $?
#顯示匹配某個結果之前的3行
grep -b 3 nobody passwd_test
#顯示匹配某個結果之後的3行
grep -a 3 nobody passwd_test
#顯示匹配某個結果的前三行和後三行
grep -c 3 nobody passwd_test
常用文字處理命令
tr 用於替換文字中的字串 tr 原始字元 目標字元 cat anaconda ks.cfg tr a z a z 小寫替換大寫 wc統計指定文字的行數,字數,位元組數 l 只顯示行數 w 只顯示單詞數 c 只顯示位元組數 cut 用於按列提取文字字元 cut 引數 文字 cut d f1 etc ...
Linux下常用文字處理命令
linux下面有很多經典的非常有用的命令,其中處理文字的命令就有很多。這些小工具經過了幾十年時間的洗禮,現在已經變成了經典,已經變成了linux下面的標準,其實它們一直是遵循著linux的標準。下面就讓我們一起看看這些經典的linux文字處理命令。拓撲排序,讀取以空格分隔的有序對,並且依靠輸入模式進...
Linux下常用文字處理命令
linux下面有很多經典的非常有用的命令,其中處理文字的命令就有很多。這些小工具經過了幾十年時間的洗禮,現在已經變成了經典,已經變成了linux下面的標準,其實它們一直是遵循著linux的標準。下面就讓我們一起看看這些經典的linux文字處理命令。拓撲排序,讀取以空格分隔的有序對,並且依靠輸入模式進...