如何在awk中手动设置记录分隔符?

VIP*_*MAR 4 awk

我有一个如下文件 -

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)

但是这个命令不起作用.

Aks*_*gde 6

输入

$ 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)