溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

linux下sed命令的使用方法

發(fā)布時(shí)間:2021-07-28 18:15:39 來源:億速云 閱讀:165 作者:chen 欄目:大數(shù)據(jù)

這篇文章主要介紹“l(fā)inux下sed命令的使用方法”,在日常操作中,相信很多人在linux下sed命令的使用方法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”linux下sed命令的使用方法”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

# 選項(xiàng)與參數(shù):
# -n :使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN 的數(shù)據(jù)一般都會(huì)被列出到終端上。但如果加上 -n 參數(shù)后,則只有經(jīng)過sed 特殊處理的那一行(或者動(dòng)作)才會(huì)被列出來。
# -e :直接在命令列模式上進(jìn)行 sed 的動(dòng)作編輯;
# -f :直接將 sed 的動(dòng)作寫在一個(gè)文件內(nèi), -f filename 則可以運(yùn)行 filename 內(nèi)的 sed 動(dòng)作;
# -r :sed 的動(dòng)作支持的是延伸型正規(guī)表示法的語法。(默認(rèn)是基礎(chǔ)正規(guī)表示法語法)
# -i :直接修改讀取的文件內(nèi)容,而不是輸出到終端。
#  
# 動(dòng)作說明: [n1[,n2]]function
# n1, n2 :選擇操作的行數(shù), 2, 5function代表2到5行, 2, +5function 代表第二行開始往后5行
# !function取反
#  
# function:
# a :新增行, a 的后面可以接字串,而這些字串會(huì)在新的一行出現(xiàn)(目前的下一行)
# c :取代行, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行!, 格式: 
# d :刪除行,d 后面通常不接字符串;格式: 
# i :插入行, i 的后面可以接字串,而這些字串會(huì)在新的一行出現(xiàn)(目前的上一行);
# p :列印行,將某個(gè)選擇的數(shù)據(jù)印出。通常 p 會(huì)與參數(shù) sed -n 一起運(yùn)行~
# s :取代,可以直接進(jìn)行取代的工作!通常這個(gè) s 的動(dòng)作可以搭配正規(guī)表示法!例如 1,20s/old/new/g 就是, 末尾不加g只替換每一行的第一個(gè)匹配的字符串
# c和s 的區(qū)別, 與s的區(qū)別s是只替換匹配到的字符串, c是替換匹配到的字符串的行


#例子:
    #建一個(gè)測試文件
    echo -e "you are my love\nhello word\nfuck coding\nhttp://baidu.com" > test.txt


    # 不加選項(xiàng), 操作后的結(jié)果打印到屏幕, 不會(huì)修改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一樣, 只不過這個(gè)是在匹配行的上一行插入

        # 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 選項(xiàng), 這個(gè)用的比較多, 這個(gè)直接操作文件用法一樣, 效果和 sed '/hello/d' test.txt > test.txt 一樣.
    # 其他選項(xiàng)自己琢磨

到此,關(guān)于“l(fā)inux下sed命令的使用方法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注億速云網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI