grep指令
grep是行過濾工具;用于根據關鍵字進行行過濾
文法:
grep [選項] '關鍵字' 檔案名
常見選項
- -i: 不區分大小寫
- -v: 查找不包含指定内容的行,反向選擇
- -w: 按單詞搜尋
- -o: 列印比對關鍵字
- -c: 統計比對到的行數
- -n: 顯示行号
- -r: 逐層周遊目錄查找
- -A: 顯示比對行及後面多少行
- -B: 顯示比對行及前面多少行
- -C: 顯示比對行前後多少行
- -l:隻列出比對的檔案名
- -L:列出不比對的檔案名
- -e: 使用正則比對
- -E:使用擴充正則比對
- ^key:以關鍵字開頭
- key$:以關鍵字結尾
- ^$:比對空行
- --color=auto :可以将找到的關鍵詞部分加上顔色的顯示
案例
# grep -i root 1.txt 忽略大小寫比對包含root的行
# grep -w ftp 1.txt 精确比對ftp單詞
# grep -w hello 1.txt 精确比對hello單詞;自己添加包含hello的行到檔案
# grep -wo ftp 1.txt 列印比對到的關鍵字ftp(-o隻列印關鍵字本身)
# grep -n root 1.txt 列印比對到root關鍵字的行好
# grep -ni root 1.txt 忽略大小寫比對統計包含關鍵字root的行
# grep -nic root 1.txt 忽略大小寫比對統計包含關鍵字root的行數
# grep -i ^root 1.txt 忽略大小寫比對以root開頭的行
# grep bash$ 1.txt 比對以bash結尾的行
# grep -n ^$ 1.txt 比對空行并列印行号
# grep ^# 1.txt 比對以#号開頭的行
# grep -v ^# 1.txt 比對不以#号開頭的行
# grep -A 5 mail 1.txt 比對包含mail關鍵字及其後5行(比對了這一行, 前面5行也列印出來)
# grep -B 5 mail 1.txt 比對包含mail關鍵字及其前5行
# grep -C 5 mail 1.txt 比對包含mail關鍵字及其前後5行
cut指令
cut是列截取工具,用于列的截取
文法:
cut 選項 檔案名
常見選項
- -c: 以字元為機關進行分割,截取
- -d: 自定義分隔符,預設為制表符\t
- -f: 與-d一起使用,指定截取哪個區域
案例
# cut -d: -f1 1.txt 以:冒号分割,截取第1列内容
# cut -d: -f1,6,7 1.txt 以:冒号分割,截取第1,6,7列内容
# cut -c4 1.txt 截取檔案中每行第4個字元
# cut -c1-4 1.txt 截取檔案中每行的1-4個字元
# cut -c4-10 1.txt 截取檔案中每行的4-10個字元
# cut -c5- 1.txt 從第5個字元開始截取後面所有字元
sort工具
sort工具用于排序;它将檔案的每一行作為一個機關,從首字元向後,依次按ASCII碼值進行比較,最後将他們按升序輸出。
選項
- -u :去除重複行
- -r :降序排列,預設是升序
- -o : 将排序結果輸出到檔案中,類似重定向符号>
- -n :以數字排序,預設是按字元排序
- -t :分隔符
- -k :以第N列作為排序條件
- -b :忽略前導空格。
- -R :随機排序,每次運作的結果均不同
案例
# sort -n -t: -k3 1.txt 按照使用者的uid進行升序排列
# sort -nr -t: -k3 1.txt 按照使用者的uid進行降序排列
# sort -n 2.txt 按照數字排序
# sort -nu 2.txt 按照數字排序并且去重
# sort -n 2.txt -o 3.txt 按照數字排序并将結果重定向到檔案
# sort -R 2.txt
# sort -u 2.txt
uniq工具
uniq用于去除連續的重複行
常見選項
- -i: 忽略大小寫
- -c: 統計重複行次數
- -d:隻顯示重複行
案例
# uniq 2.txt
# uniq -d 2.txt
# uniq -dc 2.txt