一、文字間隔
1、在每一行後面增加一空行
sed g guo.sh
awk ''
2、將檔案中原來的空行刪掉,並在在每一行後邊增加一空行
sed '/^$/d;g '
awk '!/^$/ '
3在匹配式樣的行前插入一空行
sed '/good/i\\'
sed '/hello/'
awk ''
4、在匹配式樣的行後插入一空行
sed '/good/a\\'
sed '/hello/g'
awk ''
5、在匹配式樣的行前、行後各插入一空行
sed '/hello/'
awk ''
二、文字的替換
1、在每一行查詢到good,然後把good替換為bad
sed 's/good/bad/'只把每行的第乙個good替換為bad
sed 's/good/bad/2'只把每行的第二個good替換為bad
sed 's/good/bad/g'把每一行的所有good替換為bad
sed 's/\(.*\)good/\1bad/'只把每一行的的最後乙個good替換位bad
sed 's/\(.*\)good\(.*good\)/\1bad\2/'只把每一行的的倒數第二個good替換位bad
awk ''只把每行的第乙個good替換為bad
awk ''把每一行的所有good替換為bad
cat test |tr 'root' 'good'
cat test |tr 'root' 'god'
sed 's/root/good/p' test
awk '' test
awk '' test
通過對比可知tr的替換兩個字串必須等長度,而sed不能把說有的root替換
2、只在出現字串fell字串的前提下,將找到的行中的good替換為bad
sed '/fell/ s/good/bad/g'
awk ''
3、只在不出現字串fell字串的前提下,將找到的行中的good替換為bad
sed '/fell/ !s/good/bad/g'
awk ''
4、不管是good、fell還是sun,一路替換為bad
sed 's/good/bad/g;s/fell/bad/g;s/sun/bad/g'
sed 's/good\|fell\|sun/bad/g'
awk ''
5、倒置所有行,第一行變為最後一行(模擬tac)
sed '1!g;h;$!d'
sed -n '1!g;h;$p'
awk ' end'
6、將每兩行連線為一行
sed '$!n;s/\n/ /'
awk ''
7、在檔案中每隔5行顯示一空行
sed '0~5g'
sed 'n;n;n;n;g'
awk '}'
三、選擇性的顯示特定行
1、顯示檔案的前10行
sed10q
awk ''
2、顯示檔案的第一行
sed q
awk ''
3、顯示檔案的倒數第二行
sed -e '$!' -e x當檔案只有一行時,輸出空行
sed -e '1' -e '$!' -e x當檔案只有一行時,顯示該行
sed -e '1' -e '$!' -e x當檔案只有一行時,不輸出
awk ' end'當檔案只有一行時,輸出空行
4、只顯示匹配正規表示式的行
sed -n '/good/p'
sed '/good/!d'
awk '/good/ '
awk '/good/'
grep 'good'
5、只顯示不匹配正規表示式的行
sed -n '/good/!p'
sed '/good/d'
awk '!/good/ '
grep -v 'good'
6、顯示匹配行的上一行,而不顯示匹配行
sed -n '/good/;h'
awk '/good/
7、顯示匹配行的下一行,而不顯示匹配行
sed -n '/good/'
awk '/23/'
8、顯示文字的制定行
sed -n '3,5p'
sed '3,5!d'
awk ' '
目錄: 1、不顯示檔案中的空行 2、刪除檔案的1到5行3、刪除檔案注釋行4、列印匹配行5、顯示從字元1到字元2的中間行6、匹配特別表示式7、替代文字
1、不顯示檔案中的空行
[guo@guo~]$ grep -v '^$' rc.local
[guo@guo~]$ sed -e '/^$/d' rc.local
[guo@guo~]$ awk '!/^$/' rc.local
2、刪除檔案的1到5行
[guo@guo~]$ cat test
[guo@guo~]$ sed -e '1,5d' test
[guo@guo~]$ awk ' ' test
3、刪除檔案注釋行
[guo@guo~]$ sed -e "/^#/d" rc.local
[guo@guo~]$ awk '!/^#/' rc.local
[guo@guo~]$ grep -v '^#' rc.local
5、顯示從字元1到字元2的中間行
[guo@guo~]$ sed -n -e '/hello/,/sorry/p' test1
[guo@guo~]$ awk '/hello/,/sorry/ ' test1
6、匹配特別表示式
[guo@guo~]$ sed -n -e '/main[[:space:]]*(/,/^}/p' for.c
1、通過awk訪問系統環境變數
[guo@guoawk]$ awk 'begin '
/home/guo
/usr/lib/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin
2、awk中的算術運算子
[guo@guoawk]$ awk 'begin '
3+2=5
[guo@guoawk]$ awk 'begin '
2^10=1024
[guo@guoawk]$ awk 'begin '
(3+1)*4/2=8
awk支援的運算子有+ - * / % ^。
4、awk的迴圈
if語句
[guo@guoawk]$ cat num
12243535
890232
232 9809
890 -8990
[guo@guoawk]$ awk '' num
890232
890 -8990
[guo@guoawk]$ awk '}' num
890232
890islarger than232
890 -8990
890islarger than-8990
if/else
[guo@guoawk]$ awk '' num
3535
8909809
890[guo@guoawk]$ awk ' else print $2}' num
3535
19809
22023年10月9日 14:50:38
普通青年版:
sed '1d;$d'
文藝青年版:
sed -n '1!p;n;$q;d'
二逼青年版:
sed -r ':a;n;$!ba;s/^[^\n]+\n(.+)\n[^\n]+$/\1/'
sed和awk的常用例項
一 文字間隔 1 在每一行後面增加一空行 sed g guo.sh awk 2 將檔案中原來的空行刪掉,並在在每一行後邊增加一空行 sed d g awk 3在匹配式樣的行前插入一空行 sed good i sed hello awk 4 在匹配式樣的行後插入一空行 sed good a sed h...
sed 和 awk 的運用
n 遮蔽預設輸出,預設sed會輸出讀取文件的全部內容 r 讓sed支援擴充套件正則 i sed直接修改原始檔,預設sed只是通過記憶體臨時修改檔案,原始檔無影響 sed n 3,6p etc passwd 答案 sed i s usr local usr src g file 答案 awk home...
sed常用例項
把檔案中還有 today 字串的資料行中的 tom 字串替換成 john sed e today s tom john g input.dat把檔案中第三行 的資料替換成句子 young is better sed e 5c young is better input.dat把檔案中第3至10行的資...