您好,登錄后才能下訂單哦!
這篇文章主要介紹“linux下sed命令的使用方法”,在日常操作中,相信很多人在linux下sed命令的使用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”linux下sed命令的使用方法”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
# 選項與參數: # -n :使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN 的數據一般都會被列出到終端上。但如果加上 -n 參數后,則只有經過sed 特殊處理的那一行(或者動作)才會被列出來。 # -e :直接在命令列模式上進行 sed 的動作編輯; # -f :直接將 sed 的動作寫在一個文件內, -f filename 則可以運行 filename 內的 sed 動作; # -r :sed 的動作支持的是延伸型正規表示法的語法。(默認是基礎正規表示法語法) # -i :直接修改讀取的文件內容,而不是輸出到終端。 # # 動作說明: [n1[,n2]]function # n1, n2 :選擇操作的行數, 2, 5function代表2到5行, 2, +5function 代表第二行開始往后5行 # !function取反 # # function: # a :新增行, a 的后面可以接字串,而這些字串會在新的一行出現(目前的下一行) # c :取代行, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行!, 格式: # d :刪除行,d 后面通常不接字符串;格式: # i :插入行, i 的后面可以接字串,而這些字串會在新的一行出現(目前的上一行); # p :列印行,將某個選擇的數據印出。通常 p 會與參數 sed -n 一起運行~ # s :取代,可以直接進行取代的工作!通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g 就是, 末尾不加g只替換每一行的第一個匹配的字符串 # c和s 的區別, 與s的區別s是只替換匹配到的字符串, c是替換匹配到的字符串的行 #例子: #建一個測試文件 echo -e "you are my love\nhello word\nfuck coding\nhttp://baidu.com" > test.txt # 不加選項, 操作后的結果打印到屏幕, 不會修改test.txt # function s # you替換成he sed 's/you/he/' test.txt # 1到2行的a替換成b sed '1,2s/a/b/' test.txt #function a, 在有hello行的下一行插入 k, a后面的\可以不要加上好看些 # 匹配到hello的下一行添加一行k sed '/hello/a\k' test.txt # 1到2行每行后面添加一行k sed '1,2a\k' test.txt # function c, 替換有hello的的行為 k, c后面的\可以不要加上好看些 # 匹配到的hello的行替換成k sed '/hello/c\k' test.txt # 1到2行替換成k sed '1,2c\k' test.txt # function i, 和a一樣, 只不過這個是在匹配行的上一行插入 # function p, !p取反, 與-n配合使用 # 打印匹配到的行, 或取反 sed -n '/hello/p' test.txt sed -n '/hello/!p' test.txt # 打印1到2行, 或取反 sed -n '1,2!p' test.txt sed -n '1,2p' test.txt # function d # 刪除匹配到的行, 或取反 sed '/hello/d' test.txt sed '/hello/!d' test.txt # 刪除1到2行, 或取反 sed -n '1,2!p' test.txt sed -n '1,2p' test.txt # -i 選項, 這個用的比較多, 這個直接操作文件用法一樣, 效果和 sed '/hello/d' test.txt > test.txt 一樣. # 其他選項自己琢磨
到此,關于“linux下sed命令的使用方法”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。