$ awk '{printf "%s%s",$0,(NR%2?" ":"\n")}' sample.txt
this is line one and this is line two
the third and the fourth must be pasted too
Esto imprime cada línea, $0
seguida de un espacio o una nueva línea, dependiendo de si el número de línea NR
es impar o par.
La expresión NR%2?" ":"\n"
es una declaración ternaria. La expresión se NR%2
evalúa como verdadera (distinta de cero) si el número de fila es impar. En el caso, la expresión ternaria devuelve un espacio. Si se evalúa como falso (cero), se devuelve la nueva línea.
Alternativa
Como lo sugirió Costas en los comentarios:
$ awk '{ORS=(NR%2?" ":RS)}1' sample.txt
this is line one and this is line two
the third and the fourth must be pasted too
Aquí, la declaración ternaria NR%2?" ":RS
se usa para devolver un espacio o el separador de registro de entrada ( RS
, predeterminado = nueva línea). Este valor se asigna al separador de registro de salida, ORS
. El 1
final del comando es la abreviatura críptica de awk para imprimir el registro.