practicos - awk unix
¿Cómo inserto una línea en blanco cada n líneas usando awk? (5)
Más torpeza:
awk ''ORS=NR%5?RS:RS RS''
Por ejemplo:
$ printf "%s/n" {1..12} | awk ''ORS=NR%5?RS:RS RS''
1
2
3
4
5
6
7
8
9
10
11
12
Tengo un archivo de entrada como este:
line 1
line 2
line 3
line 4
line 5
line 6
Me gustaría usar awk para insertar una línea en blanco cada pocas líneas; por ejemplo, cada dos:
line 1
line 2
line 3
line 4
line 5
line 6
¿Cómo puedo obtener awk para poner una línea en blanco en mi archivo cada n líneas?
Una forma más "awk-ish" de escribir la respuesta de smcameron:
awk -v n=5 ''1; NR % n == 0 {print ""}''
El "1"; es una condición que siempre es verdadera y activará la acción predeterminada que es imprimir la línea actual.
$ awk -v n=5 ''$0=(!(NR%n))?"/n"$0:$0''
Si desea cambiar ''n'', configure el parámetro ''n'' con la opción -k de awk.
awk ''{ if ((NR % 5) == 0) printf("/n"); print; }''
para n == 5
, por supuesto. Sustituye lo que sea tu idea de n
.
awk ''{print; if (FNR % 5 == 0 ) printf "/n";}'' your_file
Supongo que ''imprimir'' debería estar antes de ''printf'', y FNR es más preciso para su tarea.