有关sed命令的用法
?sed:Stream Editor行編輯器? sed本身也是一個管道命令,還可以將數(shù)據(jù)進行替換、刪除、新增、?選取特定行等的功能
? sed分為兩個空間模式:1、模式空間? 2、保留空間
??? 格式為: sed [選項] [參數(shù)] filename?
??? 選項:????
??????? -i?? ?直接操作原文件并保存(慎用!!!)
??????? -e??多腳本 #sed -e ' 1 ; 2 ' test或者#sed -e '1' -e '2' test
??????? -r?? 使用擴展正則表達式
????? ? -n???如果加上-n參數(shù)后,則只有經(jīng)過sed特殊處理的那一行才會被列出來,一般和P一塊用??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 命令:
??????? a \??? 在模式匹配到的行后面添加新內(nèi)容
?????????????? #sed '/#/a \ this is a new line ' fstab? ---> 在#號后面添加this is a new line新增?
????????d???? 刪除指定行?????
??????????? sed 'ADD 1,ADDR3 COMMOND' input_file?????
??????????????????#sed '1,2d' fstab????? ------> 刪除fstab的第1行到2行
????????????????? #sed '1,2!d' fstab???? ------> 命令取反,意思是不刪除第1行和第2行
??????? i \??? 在模式匹配到的行前面添加新內(nèi)容?
?????????????? #sed '/#/i \ this is a new line ' fstab? --> 在#號前面添加this is a new line?
??????? r FILE??? 讀某個文件??? #sed '2r \root\test' fstab
??????? w FILE?? 將匹配到的行保存到哪個文件???? #sed -n ‘/[a-z]/w ’ /etc/passwd
??????? s? s/PATTERN/string?? 第一個出現(xiàn)的替換
??????????? g?? 全局查找替換
????????? sed 's/要被替換的字符串/新的字符串/g'???
???????? i?????不分大小寫
????????&?? 引用前面的匹配??? #sed 's/l..e/&r/g' test?????????
??????? n????讀取下一行,覆蓋??? #sed -n '1n;p' test? ------->第一行被覆蓋不顯示
?????????????????? #sed 'n;d' test????? -------> 刪除偶數(shù)行
?????? #sed 'n;d' test???? -------> 顯示第一行和第3行 (假如test共有4行)
?????? #sed '2n;d' test???? -------> 只留第二行,其它行刪除
??????? N?? 讀取下一行,追加?? #sed -n 'N;p' test? ---->? 將下一行并到同一行
??????? h??? 將模式空間中的內(nèi)容復(fù)制到保留空間,覆蓋的方式? 移除原來的
??????? H?? 將模式空間中的內(nèi)容復(fù)制到保留空間,追加的方式? 和原來的共同存在
??????? g??? 將保留空間中的內(nèi)容復(fù)制到模式空間,覆蓋的方式
???????????????? #sed? 'g' ?test????? -------> 空白行
???????????????? #sed? '3g' ?test???? -------> 第3行為空白行
??????? G?? 將保留空間中的內(nèi)容復(fù)制到模式空間,追加的方式
???????????????? #sed ?'G' ?test ---> 每行后面加空白行
??????????????? ?#sed? '1!G' ?test --> 除了第一行,其它的都加空白行
??????? b????跳轉(zhuǎn),略過符合模式的行
???????????????? #sed ?'3d;p' ?newfile? --> 把第3行跳過
??????? b para;:para??? 跳轉(zhuǎn)到哪?
????????????? ?#sed '/#/d para;:para;y/ab/AB/' test -->跳轉(zhuǎn)到有#號的那行并把小寫ab改為大寫
??????? sed標簽最長為7個字符;聲明標簽式使用:label的格式,跳轉(zhuǎn)時不用冒號
??????? y? y/字符集1/字符集2/g
??????? t label?? 測試:前面的s命令執(zhí)行成功就跳轉(zhuǎn)到標記位置
??????? x???? 保留空間和模式空間對調(diào)
???????? sed '/PATTERN/command' input_file
?????????????? #sed '/[z-a]/' fstab??? -----> 刪除有小寫字母的那行
?????????????? sed '/PATTERN1/,/PATTERN2/command' input_file? ----> 刪除匹配到那兩行之間的行
轉(zhuǎn)載于:https://blog.51cto.com/liumissyou/903982
總結(jié)
以上是生活随笔為你收集整理的有关sed命令的用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 温州特斯拉事故司机有20年驾龄:伤势严重
- 下一篇: 价格猛降 30%,丰田首款纯电车割肉自救