a.txt內(nèi)容如下:
111 222 baidu 333 444 google 555 666
交換包含baidu和包含google的行,得到:
111 222 google 333 444 baidu 555 666
代碼1:
sed '/baidu/{:a;N;/google/!ba;s/\([^\n]*\)\n\(.*\)\n\(.*\)/\3\n\2\n\1/}' a.txt
代碼1的執(zhí)行過程:
代碼2:
sed '/baidu/{:a;N;/google/{s/\(^[^\n]*\)\(.*\)\(\n\)\([^\n]*$\)/\4\2\3\1/;t};ba}' a.txt
代碼2的執(zhí)行過程:
代碼1和代碼2的特點(diǎn):
1、不需要事先知道baidu和google分別在第幾行。
2、不管baidu和google是否相鄰,都可以正常處理。
3、如果先出現(xiàn)google后出現(xiàn)baidu,命令需要相應(yīng)的做調(diào)整。
標(biāo)簽:呼和浩特 常德 晉中 連云港 公主嶺 三明 香港 林芝
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《linux sed命令互換包含指定關(guān)鍵字的行》,本文關(guān)鍵詞 linux,sed,命令,互換,包含,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。