grep
-
--color=auto
會高亮匹配的關(guān)鍵字 -
-o
只顯示匹配的關(guān)鍵字 -
-n
顯示行號 -
grep -E
和egrep
都是按照正則匹配 -
-l
只顯示匹配的文件名稱 -
-A num
打印匹配行的后 num 行,-B num
打印匹配行的前 num 行枉氮,-C num
打印匹配行的前后 num 行
cut
-
-f num
輸出以空格分隔的第 num 列 -
-d"char"
以 "char" 替換默認(rèn)的制表符為列的分隔符 -
-c
指定字符的寬度
sed
-
sed -i 's/pattern/replace/g' filename
文本替換 -
sed -i '/pattern/d' filename
會刪除匹配的行 -
sed -i 's/pattern/[&]/g'
& 表示所有的匹配 -
sed -i s/\(pattern1\)\(pattern2\)/\1 \2/g
\1 \2 分別表示子匹配
awk
-
awk 'BEGIN{ print "start"} pattern { commands } END{ print "end"}' filename
- 首先執(zhí)行 BEGIN 塊
- 再遍歷每一行,執(zhí)行 pattern { commands }
- 最后執(zhí)行 END 塊
- NR 表示當(dāng)前行號
NF 表示當(dāng)前行有多少個通過空格劃分的單詞
$0 表示當(dāng)前行所有字符
$1 表示第一個單詞
$2 表示第二個單詞 -
-v var=$extern_var
導(dǎo)入外部變量 -
-F:
指定分隔符 - 可以通過
getline
顯示讀取一行
文本切片和替換
Script
#!/bin/bash
var="hello world ~"
shell=${var/world/shell}
echo $var
echo $shell
echo ${var:6:5}
echo ${var:(-1)}
Note
- 切片的語法為
${var:start_position:length}
- 最后一個位置的 position 可以用 (-1) 表示