- -i:忽略大小寫
- --color:匹配到的字符用其他顏色顯示出來
- -v:顯示沒有匹配到的行
- -o:只顯示被模式匹配到的字符串,不顯示行
- -A n:顯示該行及其後n行
- -B n:顯示該行及其前n行
- -C n:顯示該行及其前後各n行
sed 用來把文檔或字符串裏的文字經過一系列編輯命令轉換爲另一種格式輸出
- startline,endline:開始行,結束行
- /RegExp/:擴展正則表達式
- /pattern1/,/pattern2/:從第一次匹配parttern1行開始,到第一次匹配到pattern2行結束
- linenumber
- startline,+N:從startline開始,向後N行結束
- p:顯示符合條件的行(不適用-n被匹配到的行會顯示兩遍,sed會把處理的信息輸出)
- a xxx:新增,在指定的行後面追加新行,內容爲“xxx”(下一行)
- c xxx:替換,在c後面可以接字符串
- d:刪除,刪除符合條件的行
- i xxx:插入,在指定的行前面追加新行,內容爲“xxx”(上一行)
- r file:將指定的文件內容添加到符合條件的文件中
- w file:將地址指定範圍的行另存至指定的文件中
- s /被替換字符/替換字符/[i/g]:查找並替換,默認只替換每行中第一次被模式匹配到的字符
g:全局替換 i:忽略字符大小寫
# Read from the file file.txt and output the tenth line to stdout.
cat file.txt | sed -n '10p'
nl wc.txt | sed '2i zhang'
nl wc.txt | sed '2s/hello/bonjour/i'
awk提供了強大的功能:正則表達式、樣式裝入、流控制、數學運算符、進程控制語句、內置變量函數。
awk [options] 'script' file1,file2,......
awk [options] 'PATTERN{action}' file1,file2,......
awk 'BEGIN{OFS=","}{print $1,$2}' wc.txt
- NR:awk命令所處理的記錄行數(可能有多個)
- NF:當前記錄的字段數
- FNR:當前處理文件的行數
- ARGV:數組,保存命令行本身的字符串
- ARGC:awk命令的參數個數
- FILENAME:正在處理的文件名稱
- ENVIRON:當前shell環境變量及其關聯數組
awk 'BEGIN{print ENVIRON["PATH"]}'
print item1,item2,......
printf format item1,item2,......
與print不同,printf需要指定格式(item輸出格式)
- %c:字符的ASCII碼
- %d,%i:十進制整數
- %e,%E:科學計數法顯示數值
- %f:顯示浮點數
- %g,%G:以科學計數法格式或浮點數格式顯示數值
- %s:顯示字符串
- %u:無符號整數
- %%:顯示%自身
(1) 讀入第一行,並將第一行的數據填入到$0,$1,$2等變量當中
每一行的每個變量都是有變量名稱的,$1,$2,$3......($1表示第一列,$0表示一整行)
last -n 5 | awk '{print $1,$3}'
last -n 5 | awk '{print $1,NR,NF}'
--------------------------------------------------------------------------------------------------------
cat wc.txt |
sed 's/[,.:;/!?]/ /g' |
awk '{for(i=1;i<NF;i++)array[$i]++;}END{for(i in array) print i,array[i]}'