sed行处理详解 :交换行,合并行,删除行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed行处理详解 :交换行,合并行,删除行相关的知识,希望对你有一定的参考价值。
sed行处理详解(交换行,合并行,删除行
多行合并一行:
cat xai 303728 303778 304175 304176 304261 304470 awk ‘{if(NR%2==0){printf $0 "\n"}else{printf "%s:",$0}}‘ xai 303728:303778 304175:304176 304261:304470
sed ‘N;s/\n/ :/‘ xai 303728 :303778 304175 :304176 304261 :304470
合并上下两行:
sed ‘$!N;s/\n/\t/‘ xai 303728 303778 304175 304176 304261 304470
合并匹配模式及其下一行:
sed ‘/304175/{N;s/\n/\t/}‘ xai 303728 303778 304175 304176 304261 304470
合并所有行:
sed ‘:a;N;s/\n/\t/;ba;‘ xai 303728 303778 304175 304176 304261 304470
2.交换行
2.1已知行号时交换两行:
这里是交换1,4行.当然你可以根据自己需要修改
cat xai 303728 303778 304175 304176 304261 304470
for(( i=1;i<=4;i++ )); do case $i in 1) sed -n 4p xai;; 4) sed -n 1p xai;; *) sed -n ${i}p xai;; esac; done 304176 303778 304175 303728
删除空行
sed ‘/^$/d‘ test2
删除多个空行为一个空行
sed ‘/^$/{N;/^\n*$/D}‘ test
本文出自 “~” 博客,谢绝转载!
以上是关于sed行处理详解 :交换行,合并行,删除行的主要内容,如果未能解决你的问题,请参考以下文章