我有一个如下文件 -
vipin kumar ........................ kumar ......bangalore
something something .......
;
vipin kumar ........................ kumar ......bangalore
something something .......(testing
)
;
vipin kumar ......................... kumar .....bangalore
something something ;
Run Code Online (Sandbox Code Playgroud)
我想要输出如下(名称和数字可以在文件中不同但唯一的共同点 - 当我们有";"时行结束)
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 ";" .
Run Code Online (Sandbox Code Playgroud)
我试过下面的命令 -
awk '{ORS=(NR%2==0?RS:FS)}1' file.txt
Run Code Online (Sandbox Code Playgroud)
但它没有提供正确的输出,因为
NR%2 or NR%3 不会工作,因为我不确定我会得到多少行 ;
然后我试着将RS设置为; 使用下面
awk '{for(i=1;i<=NF;i++) (ORS=(if($i ~ /;/?RS:FS);break}1' file.txt
Run Code Online (Sandbox Code Playgroud)
但是这个命令不起作用.
输入
$ cat f
vipin kumar ........................ kumar ......bangalore
something something .......
;
vipin kumar ........................ kumar ......bangalore
something something .......(testing
)
;
vipin kumar ......................... kumar .....bangalore
something something ;
Run Code Online (Sandbox Code Playgroud)
产量
$ awk 'ORS=/;/?RS:FS' f
vipin kumar ........................ kumar ......bangalore something something ....... ;
vipin kumar ........................ kumar ......bangalore something something .......(testing ) ;
vipin kumar ......................... kumar .....bangalore something something ;
Run Code Online (Sandbox Code Playgroud)