sed(或其他工具)命令将不带字符“ 0”结尾的文件中的行连接在一起的方式是什么?
我将有这样的行
412|n|Leader Building Material||||||||||d|d|20||0
需要单独放置,然后我会有这样的行(例如,这是3行,但只有一端为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
需要合并/合并为一行
107|n|Knot Tying Tools|||||Knot Tying Tools|||||d|d|0||0
sed ‘:a;/0$/{N;s/\n//;ba}’
在循环中(分支ba到label :a),如果当前行以0(/0$/)结尾,则追加下一行(N)并删除内部换行符(s/\n//)。
ba
:a
/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