我的文本文件包含followig模式
<SUBBEGIN
NAME : A ;
AGE : 10 ;
ADDRESS 1 : NO10;
ADDRESS 2 : X-Lane;
ADDRESS 3 : X-City ;
CITY : X-City;
<SUBEND
<SUBBEGIN
NAME : B ;
AGE : 30 ;
ADDRESS 1 : NO70;
ADDRESS 2 : Y-Lane;
ADDRESS 3 : Y-City ;
<SUBEND
我想打印上面的输出格式如下,请帮助我排序,我是bash / shell的新手
预期产出:
NAME : A ;AGE : 10 ;ADDRESS 1 : NO10;ADDRESS 2 : X-Lane;ADDRESS 3 : X-City ;CITY : X-City;
NAME : B ;AGE : 30 ;ADDRESS 1 : NO70;ADDRESS 2 : Y-Lane;ADDRESS 3 : Y-City ;
我尝试了2个代码,但两个代码都打印在没有TAG的数据之上
awk 'BEGIN { FS = "<SUB" } ; { gsub(" ","",$0); print }' users.txt
和
awk '/<SUBBEGIN/{flag=1;next}/<SUBEND/{flag=0}flag' users.txt
答案 0 :(得分:1)
"<SUBBEGIN|<SUBEND"
已更改为awk -v RS="<SUBBEGIN|<SUBEND" '{$1=$1;} /./{print $0}' inputfile
NAME : A ; AGE : 10 ; ADDRESS 1 : NO10; ADDRESS 2 : X-Lane; ADDRESS 3 : X-City ; CITY : X-City;
NAME : B ; AGE : 30 ; ADDRESS 1 : NO70; ADDRESS 2 : Y-Lane; ADDRESS 3 : Y-City ;
。因此,这些标签之间的任何内容都将被视为一条记录。
$(System.DefaultWorkingDirectory)
答案 1 :(得分:1)
awk '/<SUBEND/{print t;t="";next}!/<SUBBEGIN/{t=t?t" "$0:$0}' file