sed? 循環 一行一行的處理文件???? 行處理
sed -n '/abc/p' file 默認會打印模式空間的內容
行中匹配abc的打印出來? -r? 支持擴展分割符
-n不讓默認打印模式空間?
?sed root@10.0.0.1 sed 's/abc/def' file? 遠程登錄后修改file里的內容
sed -n '5p' file 把第五行打印出來
sed -n '$p' file? 把最后一行打印出來
sed -n '1,3p' file? 把一到三行打印出來
sed -n '1,~3p' file? 從第一行開始打印三行
sed? -i '3i aaaaaaa' file? 在第三行的前面加上aaaaaaa
sed -i '$a? aaaaa' file? 在最后行加入aaaaa
sed? -i '/^tom/i? aaaaaa' file? 在以tom開頭的行前一行加上aaaaaa
sed? -i? 's/abc/def/' file 改每一行的第一個abc成def
sed? -i? 's/abc/def/g' file 改每一行的所有abc成def
sed? -i? 's/abc/def/3' file 改每一行的第三個abc成def
sed? -i? '1,2s/abc/def/' file 改一到兩行abc成def
s 換匹配的字段 c換匹配的行
sed? -i? '1,2s/^.*$/def/' file 改一到兩行成def
sed? -i?? '4c aaaaaaaaa' file? 把第四行改為aaaaaaaa
sed -i? '/^SELINUX/c? selinux ' 把所有以SELINUX開頭的行改為selinux
sed -i? '4d' 把第四行刪除
sed -i? '/^tom/d' file 刪除以tom開頭的所有行
sed -i? '/^$/d' file? 刪除空行
sed -i? '/^\s$/d' file? 刪除開頭為空行\s表示空格或tab
sed? -i '/^abc/s/tom/jerry/'? file? 先找到以abc開頭的行將這一行的tom改為jerry
sed -i '/^mike/s/^/#' file 將mike行注釋
sed? -n? '1p; 3p'? file? 打印第一行和第三行
sed -i -e '1s/jerry/tom/;?? -e 3s/mike/xyz/'? file? 多條一起執行用-e
sed -i '/abc/,/^def/s/123/456/' file? 將abc開頭的行和def開頭的行之間的行的123改為456
sed? -n '1,/def/p' file 從第一行開始直到碰到def的行全部打印出來
#------------------------------------------------------------------------
awk 按行處理行里字段? 循環命令
默認以空格作為分割符 默認打印整行$0 -F分割符?? 制定分割符
awk? 'BEGIN{print? "aaaa"}/tom/{print $2}END{print "bbbbbbb"}'? file1先執行BEGIN里的語句 從文件中讀取第一行是否匹配/tom如果有則執行沒有就不執行直到讀完后,再運行END的語句? 可以選用BEGIN? 匹配項 ENG。
awk '/^mike/{print $2}' file
awk 'NR==2{print $2}'? file??? NR是行號 NF字段數
awk 'NR==2||NR==4{print $2}' file?? 只讀兩個固定的行號
awk? '{print $0}' file? $0 整個行
awk 'BENGIN{FS=":" OFS="? "}/bash$/{print $0}' file? FS 指定了分割符:OFS 指定了輸出的字段分割符
tr ":" "" 將冒號改為空格
awk 'BEGIN{i=10;echo$i}'
awk -v v1=$a -v v2=$b? 'BEGIN{print v1+v2}'? 將bash的值傳給awk
awk -F: -v v1=$a '$0~v1'{print $0} ~ 匹配條件
awk? 'BEGIN{i=0;}{i++}END{print i}' file
awk '/^root/{$3+=10;print $3}' file
awk '$1~"root"{print $1}' file
awk '$1==500{print $1}' file? 第一個字段為500
awk '$NF~"bash"{print $1}' file? 最后一個字段是否有bash
awk? '$3>=500&&$3<=503{print $2}' file
awk? -F: -v v1=$a '$1~^v1'? file 打印出以變量a開頭的行
awk? -F: '{if($1~/^root/)print $1}' file?? 打印出第一個字段以root開頭的行的第一個字段
awk? 'system("useradd" $2)' file?? system()調用系統的命令