sed 循環 一行一行的處理文件 行處理
sed -n '/abc/p' file 默認會打印模式空間的內容
行中匹配abc的打印出來 -r 支持擴展分割符
-n不讓默認打印模式空間
sed [email protected] 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()調用系統的命令
sed和awk常用命令式例
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux核心技能与应用
wy53780
2020-04-23 14:02:05
Python與家國天下
豌豆花下貓
2019-02-24 22:22:40
linux上安裝Docker(非常簡單的安裝方法)
幸運券發放
2019-02-24 19:38:01
2019年Java面試-併發容器篇
王知無
2019-02-24 15:12:46
淺淡個人學習嵌入式Linux過程
wx5c317e5b736d2
2019-02-24 13:31:30
DHCP服務原理與搭建(Linux系統+路由器,二選一方案)
wx5c7174443c6f9
2019-02-24 13:23:18
Redis安裝與配置
劉遄
2019-02-24 13:12:51
Linux查看CPU和內存使用情況
wbzjacky
2019-02-24 13:12:37
相關Linux安全方面的知識點
slqbj
2019-02-24 13:02:39
忘記了Linux密碼,使用GRUB重新設置
slqbj
2019-02-24 13:02:39
Oracle11g 基於linux 6.3下安裝
love壁虎
2019-02-24 12:55:06
Oracle基於Linux 7下的安裝
love壁虎
2019-02-24 12:55:05
CentOS7更換yum源
駙馬葉子
2019-02-23 20:02:48