#sed:stream editor :一次處理一行內容,處理時,把當前的行儲存在臨時緩衝區,處理完後,輸送到螢幕
sed [引數] '命令' file
p ##顯示
d ##刪除
a ##新增
c ##替換
i ##插入
1)p:
sed -n '/\:/p' /etc/fstab #顯示/etc/fstab中有:的行
sed -n '/^#/p' /etc/fstab #顯示/etc/fstab中以#開頭的行
sed -n '/^#/!p' /etc/fstab #顯示/etc/fstab中不是以#開頭的行
sed -n '2,6p' /etc/fstab #顯示/etc/fstab中2-6行
sed -n '2,6!p' /etc/fstab #除了/etc/fstab中2-6行,其餘都顯示
2)d:
sed '/^uuid/d' /etc/fstab #刪除/etc/fstab檔案中以uuid開頭的行
sed '/^#/d' /etc/fstab #刪除/etc/fstab檔案中以#開頭的行
sed '/^$/d' /etc/fstab #刪除/etc/fstab檔案中的空行
sed '1,4d' /etc/fstab #刪除/etc/fstab檔案中1-4行
3)a:
sed '/hello/aworld' westos #在westos檔案後面加上world
4)c:替換
sed '/hello/chello world' westos #將westos檔案中所有的hello都替換成hello world
sed 's/hello/hello world/g' westos #將westos檔案中所有的hello都替換成hello world
sed 's/hello/hello\nworld/g' westos
5)i:
[root@server mnt]# sed '/hello/iworld\nwestos' westos
world
westos
hello
6)-i:改變原檔案內容
sed -i 's/westos/redhat/' passwd
#awk報告生成器
awk處理機制:根據模式一次從檔案中抽取一行文字,對這行文字進行切片(預設使用空白字元作為分隔符)
[root@server mnt]# cat test
this is a file
awk '' test ##$0表示輸出一整行
awk '' test ##以空格為分隔符輸出第乙個字段
awk '' test
awk '' test ##顯示第1和第2兩個字段
awk -f ":" '' /etc/passwd ##-f指定分隔符
#awk常用變數
awk '' /etc/passwd ##輸出檔名,和當前操作的行號
awk -f: '' /etc/passwd ##輸出每次處理的行號,以及當前以":"為分隔符的字段個數
總結:awk 『』 /etc/passwd
begin{}:讀入第一行文字之前執行的語句,一般用來初始化操作
{}:逐行處理
end{}:處理完最後以行文字後執行,一般用來處理輸出結果
awk 'begin '
awk -f: 'begin end ' passwd ##檔案開頭加redhat,末尾加westos,列印行號和內容
awk -f: '/bash$/' /etc/passwd ##輸出以bash結尾的
awk -f: 'nr==3 ' /etc/passwd ##第三行
awk -f: 'nr % 2 == 0 ' /etc/passwd ##偶數行
awk -f: 'nr >=3 && nr <=5 ' /etc/passwd #3-5行
awk 'beginend' linux.txt ##統計文字總欄位個數
#if單分支語句
awk -f: 'begin}end' /etc/passwd ##統計登入shell為bash的使用者
#if雙分支
awk -f: 'beginelse}end' /etc/passwd ##統計uid小於等於500和大於500的使用者個數
#for迴圈
awk 'begin}'
shell指令碼學習 5 sed命令學習
1 你想過sed為什麼叫sed麼?sed是stream editor的縮寫,sed就是乙個流編輯器,說白了,就是我們往sed裡輸入一串資訊,它給我們處理,然後輸出來。就這麼簡單。sed和cut類似,是乙個面向行處理的工具,它以 行 為處理單位,處理後的結果會輸出到標準輸出。所以說其實sed命令很安全...
shell指令碼學習sed
i 替換並儲存 s pattern replace string 只替換第一處 s pattern replace string g 替換所有 s pattern replace string ng 從第n處開始匹配 ex 直接替換文字 clz localhost shell learn sed i...
Shell指令碼的學習 sed
sed是流編輯器,對文字進行批量化處理。sed option script file1 file2 sed option f scriptfile file1 file2 sed 處理的檔案既可以由標準輸入重定向得到,也可以當命令列引數傳入,命令列引數可以一次傳入多個檔案,sed會依次處理。sed的...