linux sed命令互換包含指定關(guān)鍵字的行
發(fā)布日期:2022-01-04 14:32 | 文章來源:腳本之家
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)整。
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
相關(guān)文章
關(guān)注官方微信