我有一个像下面这样的文件 -
vipin kumar ........................ kumar ......bangalore
something something .......
;
vipin kumar ........................ kumar ......bangalore
something something .......(testing
)
;
vipin kumar ......................... kumar .....bangalore
something something ;
我希望输出如下所示(文件中的名称和数字可能不同,但唯一共同点是当我们有“;”时行结束)
vipin kumar ........................ kumar ......bangalore something something .......;
vipin kumar ........................ kumar ......bangalore something something .......(testing);
vipin kumar ......................... kumar .....bangaloresomething something ;
I want to set the RS to ";" .
我尝试了以下命令 -
awk '{ORS=(NR%2==0?RS:FS)}1' file.txt
但它没有给出正确的输出,因为NR%2
或NR%3
不起作用,因为我不确定我会得到多少行后会有一个分号;
然后我尝试使用以下代码将RS设置为;
awk '{for(i=1;i<=NF;i++) (ORS=(if($i ~ /;/?RS:FS);break}1' file.txt
但是这条命令没有生效。
;
,则将输出行分隔符(ORS
)设置为默认行分隔符(RS
),即\n
,否则将ORS
设置为字段分隔符FS
,即单个空格。上述语法等同于awk '{ if ( $0 ~ /;/) { ORS = RS } else { ORS = FS } ; print $0 }' file
,其中$0
是当前记录/行/线。 - Akshay Hegde