sed连接在一起

vei*_*lig 28 regex linux sed

什么是sed(或其他工具)命令将一行中的行连接在一起,而不是以字符"0"结尾?

我会有这样的台词

412 | n |领导者建筑材料|||||||||| d | d | 20 || 0

需要单独留下,然后我会有这样的行(例如3行,但只有一行w/0)

107 | n |结结合工具|||||结结合工具

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

需要加入/组合成一行

107 | n |结扎工具|||||结扎工具||||| d | d | 0 || 0

nin*_*alj 47

 sed ':a;/0$/{N;s/\n//;ba}'
Run Code Online (Sandbox Code Playgroud)

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

AWK:

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

Perl的:

perl -pe '$_.=<>,s/\n// while /0$/'
Run Code Online (Sandbox Code Playgroud)

庆典:

while read line; do 
    if [ ${line: -1:1} != "0" ] ; then 
        echo $line
    else echo -n $line
fi
done 
Run Code Online (Sandbox Code Playgroud)


Ken*_*ent 9

awk也可能很短:

awk '!/0$/{printf $0}/0$/'
Run Code Online (Sandbox Code Playgroud)

测试:

kent$  cat t
#aasdfasdf
#asbbb0
#asf
#asdf0
#xxxxxx
#bar

kent$  awk '!/0$/{printf $0}/0$/' t
#aasdfasdf#asbbb0
#asf#asdf0
#xxxxxx#bar 
Run Code Online (Sandbox Code Playgroud)

  • 嗨!您能补充一下它的工作原理吗?:) (2认同)