什么是 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/