separador print comando campos cadena buscar awk

print - ¿Cómo configurar manualmente el separador de registro en awk?



awk separador de campos (4)

@VIPIN KUMAR: Prueba:

awk ''/^vipin kumar/ && Q{print Q;Q=$0;next} {Q=Q?Q FS $0:$0} END{print Q}'' Input_file

EDITAR: según el requisito de OP siguiente podría ayudar también.

awk ''{printf("%s%s",$0,$0~//;/?RS:"")}'' Input_file

Tengo un archivo como a continuación -

vipin kumar ........................ kumar ......bangalore something something ....... ; vipin kumar ........................ kumar ......bangalore something something .......(testing ) ; vipin kumar ......................... kumar .....bangalore something something ;

Quiero el resultado como a continuación (el nombre y el número pueden ser diferentes en el archivo pero lo único que es común: la línea termina cuando tenemos ";")

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 ";" .

Intenté debajo de los comandos -

awk ''{ORS=(NR%2==0?RS:FS)}1'' file.txt

pero no está dando el resultado correcto porque

NR%2 or NR%3 no funcionarán ya que no estoy seguro después de cuántas líneas obtendré ;

luego intenté configurar el RS; usando debajo

awk ''{for(i=1;i<=NF;i++) (ORS=(if($i ~ /;/?RS:FS);break}1'' file.txt

Pero este comando no está funcionando.


Mi primera intención fue usar esto:

awk ''{gsub(//n/,"",$0); printf "%s;/n", $0}'' ORS=''/n'' RS=/; a.txt

... pero realmente me gusta la respuesta de Akshay Hegde .


Obtuve la respuesta, pero puede haber otra forma de hacerlo.

awk ''{for(i=1;i<=NF;i++) (ORS=($i ~ /;/)?RS:FS)}1'' file.txt vipin kumar ........................ kumar ......bangalore something something ....... ; vipin kumar ........................ kumar ......bangalore something something .......(testing ) ; vipin kumar ......................... kumar .....bangalore something something ;


Entrada

$ cat f vipin kumar ........................ kumar ......bangalore something something ....... ; vipin kumar ........................ kumar ......bangalore something something .......(testing ) ; vipin kumar ......................... kumar .....bangalore something something ;

Salida

$ awk ''ORS=/;/?RS:FS'' f vipin kumar ........................ kumar ......bangalore something something ....... ; vipin kumar ........................ kumar ......bangalore something something .......(testing ) ; vipin kumar ......................... kumar .....bangalore something something ;