sed的应用
sed的應(yīng)用
一、sed命令(流編輯器)
sed編輯器逐行處理文件(或輸入),并將結(jié)果發(fā)送到屏幕。
sed [-n] 'AddressCommand' file .. -n 不打印;sed不寫編輯行到標準輸出,缺省為打印所有行(編輯和未編輯)。p命令可以用來打印編輯行。 -f 如果正在調(diào)用sed腳本文件,使用此選項。此選項通知sed一個腳本文件支持所有的sed命令.例如:sed -f myscript.sed input_file,這里myscript . sed即為支持sed命令的文件。 -c 下一命令是編輯命令。使用多項編輯時加入此選項。如果只用到一條sed命令,此選項無用,但指定它也沒有關(guān)系。 -i 編輯原文件(此選項慎用,如果使用則原文件就會被修改,無法恢復(fù))。
-r 表示使用擴展正則表達式
sed由Adress和Command組成
二、Address(用于指定處理數(shù))
1、指定行數(shù)量
? ? ?如:sed -n "1,4p" /etc/passwd ? 1到4行顯示
2、指定的某一行
? ? ? 如:
? ? ? ? 開頭:sed -n ?"1" /etc/passwd?
? ? ? ? 結(jié)尾:sed -n "$p" /etc/passwd
3、開始行,+N
? ? ? 顯示從開始行,向后的N行
? ? ?如:
? ? ? ? ? ?sed -n "1,+2p" /etc/passwd ?顯示第1行的后2行
4、/模式(正則表達式)/:用來過濾特定的行
? ?如:sed -n "/^root/p" /etc/passwd
5、/模式1/,/模式2/
第一次被模式1匹配到的行開始,到第一次被模式2匹配到的行結(jié)束,這中間的所有行。
如:sed -n "/\/bin\/bash$/p" /etc/passwd
三、Command
? ? ? p:顯示符合條件的行;
? ? ? d:刪除符合條件的行;
? ? ? a \string?:在符合條件的行后面添加;
? ? ? ? ? ? ? \n:用于換行
? ? ? i ?\string : 在指定的行前面添加新行,內(nèi)容為string
? ? ? r ? FILE ? : 將指定的文件的所有內(nèi)容添加到符合條件行處
? ? ? w ?FILE ? : 將指定范圍內(nèi)的內(nèi)容另存為至指定的文件中
? ? ? s/pattern/string/修飾符:查找并替換,默認只替換每行中第一次被模式匹配到的字符串。如果想替換全部加修飾符:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? g:全局替換
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? i:忽略字符大小寫
? ? ? ? 如;sed "s/\//#/g" /etc/fstab 把所有的/替換成#號
? ? ? ?s///:可以不用/來作為分隔,可以是s***,s###
? ? ? ? ? ? 如:sed "s*\/*#*g" /etc/fstab
? ? ? 例子:如有一文件a內(nèi)容為: hello ?like
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?haw a you ,love? ? ? ? ? ? ? ? ? ??
? ? ? ?自身引用(為串加上字符):
? ? ? ? ? ? ? ? ?使用&:引用模式匹配的整個串
? ? ? ? ? ? ? ? ? l..e ?: ?like --->liker
? ? ? ? ? ? ? ? ? ? ? ? ? ? love --->lover
? ? ? ? ? ? ? ? ?語句:sed "s#l..e#&r#g" a
? ? ? ?后項引用(修改串):
? ? ? ? ? ? ? ? ?l..e ?: ?like -->Like
? ? ? ? ? ? ? ? ? ? ? ? ? ?love --> Love
? ? ? ? ? ? ? ? ?語句:sed "s#l(..e)#L\1#g" a
轉(zhuǎn)載于:https://www.cnblogs.com/programmer-tlh/p/6069074.html
總結(jié)
- 上一篇: Android开发--环境的配置
- 下一篇: 全局异步和主线程异步区别、改变Place