regex - sed 将线条连接在一起

什么是 sed(或其他工具)命令可以将文件中不以字符“0”结尾的行连接在一起?

我会有这样的台词

412|n|Leader Building Material||||||||||d|d|20||0

需要单独放置,然后我会有这样的行例如(这是 3 行,但只有一个以 w/0 结尾)

107|n|Knot Tying Tools|||||Knot Tying Tools

|||||d|d|0||0

需要合并/合并成一行

107|n|Knot Tying Tools|||||Knot Tying Tools|||||d|d|0||0

最佳答案

 sed ':a;/0$/{N;s/\n//;ba}'

在循环中(分支ba到标签:a),如果当前行以0结尾(/0$/)追加下一行 (N) 并删除内部换行符 (s/\n//)。

awk:

awk '{while(/0$/) { getline a; $0=$0 a; sub(/\n/,_) }; print}'

Perl:

perl -pe '$_.=<>,s/\n// while /0$/'

bash:

while read line; do 
    if [ ${line: -1:1} != "0" ] ; then 
        echo $line
    else echo -n $line
fi
done 

https://stackoverflow.com/questions/7852132/

相关文章:

json - Go 中带有 JSON Marshal 的小写 JSON 键名

javascript - 最低有效 JSON 是多少?

c - 是否有用于检查 Linux 内核版本的宏定义?

json - 如何使用命令行计算 JSON 对象中的项目?

linux - 如何在 Ubuntu 上安装 chkconfig?

json - JSON 可以以 "["开头吗?

json - 将 JSON 文件中的数据导入 R

linux - BASH中多列文件的反向排序顺序

json - 如何使用 Go 漂亮地打印 JSON?

.net - 如何在 ASP.NET MVC 中将 View 模型转换为 JSON 对象?