sed 是一個很強大的文本編輯器。 可以對來自文本, 以及標準輸入的文本進行編輯,sed會從文件或者標準輸入中讀取一行,將其復制到緩沖區,對文本編輯完成之后,讀取下一行直到所有的文本行都編輯完畢。但是sed選項有特別的多,并且有特別多的處理方式,理解起來比較困哪,所以接下來我們直接通過一些實際操作來理解sed命令
命令格式格式:sed [option] 'command' 文本文件
選項:
-i:表示inplace-edit,就地修改文件。
-h:顯示幫助信息
命令:
動作a :新增,a的后面可以接字串,這些字串會在新的一行出現(目前的下一行)。動作d :刪除,d后通常不接任何內容。
動作s :替換,默認替換每行中出現的第一處內容。
案例1 sed -i '2a\ujiuye' /tmp/file.txt
#在這個文件第二行直接寫入ujiuye,不用打開文件編輯 -i 能夠直接修改文件
案例2 sed -i '1i\hello-World' /tmp/file.txt
#在第一行插入helloWo 后面的i表示首行,如果不寫1,則表示在所有行前面添加
案例3 sed 'i1\test' /tmp/file.txt
#數字和后面的i位置不能改變,在每一行前面插入相應的內容,\t識別成了tab鍵,形成了空格
案例4 sed '$a\hello-world' /tmp/file.txt
#在最后一行的下一行插入內容
案例5 sed 's/舊串/新串/' /tmp/file.txt
#將文件中的就字符串替換為新字符串,默認替換第一個
案例6 sed 's/舊串/新串/g' /tmp/file.txt
#將文件中的就字符串全部替換為新字符串,后面的g是global的意思 ,s前面也可以加具體的數據,表示具體的行
案例7 sed 'nd' /tmp/file.txt
#刪除文件中的內容,n表示數字,可寫可不寫,表示刪除第幾行
案例8 sed -n '3p' /tmp/file.txt
#p表示打印, 打印第三行內容 前面的選項n表示特殊處理某一行
案例9 sed -n '100,200p' /tmp/file.txt
#打印這個文件的100行到200行
案例10 sed '/My/,/You/d' /tmp/file.txt
刪除包含"My"的行到包含"You"的行之間的行
案例11 sed '/My/,10d' /tmp/file.txt
#刪除包含"My"的行到第十行的內容
案例12 sed '/my/d' datafile
#刪除包含my的行,其余的都被顯示
案例13 sed -i 's/ujiuye/helloWorld&/' /tmp/file.txt
#在所有ujiuye前面插入helloworld
案例14 sed -i 's/ujiuye/&helloWorld/' /tmp/file.txt
#在所有ujiuye后面插入helloWorld
案例15 sed –i ‘s/^/ HEAD&/’ /tmp/file.txt
#在每行的頭添加字符,比如“HEAD”
案例16 sed -I ‘s/$/&tail/’ /tmp/file.txt
#在每行的尾部添加字符,比如“tail”
案例17 sed -i ‘/^$/d;s/111/aaa&/;s/111/&bb’ /tmp/file.txt
#刪除所有空格并在指定位置插入相關內容 “^” 代表行首 “$” 代表行尾
案例18 sed -n '1,20s/My$/You/gp' datafile
#取消默認輸出,處理1到20行里匹配以My結尾的行,把行內所有的My替換為You,并打印到屏幕上。
#編輯多個文件
案例17 sed -i 's/ujiuye/&helloWorld/' *.txt
在所有的*.txt文檔的ujiuye后面插入helloWorld
更多內容
>>本文地址:http://www.jecan.cn/zhuanye/2020/49133.html
聲明:本站稿件版權均屬中公教育優就業所有,未經許可不得擅自轉載。
1 您的年齡
2 您的學歷
3 您更想做哪個方向的工作?