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 ;