linux sed命令 替换(linux sed命令互换包含指定关键字的行)
导读:a.txt内容如下:...
a.txt内容如下:
交换包含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的执行过程:
代码2:
sed /baidu/{:a;N;/google/{s/\(^[^\n]*\)\(.*\)\(\n\)\([^\n]*$\)/\4\2\3\1/;t};ba} a.txt
代码2的执行过程:
代码1和代码2的特点:
1 、不需要事先知道baidu和google分别在第几行 。
2 、不管baidu和google是否相邻 ,都可以正常处理 。
3 、如果先出现google后出现baidu ,命令需要相应的做调整 。
声明:本站所有文章 ,如无特殊说明或标注 ,均为本站原创发布 。任何个人或组织 ,在未征得本站同意时 ,禁止复制 、盗用 、采集 、发布本站内容到任何网站 、书籍等各类媒体平台 。如若本站内容侵犯了原著者的合法权益 ,可联系我们进行处理 。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!