$ 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
Isso imprime cada linha, $0
seguida por um espaço ou uma nova linha, dependendo do número da linha NR
, ser ímpar ou par.
A expressão NR%2?" ":"\n"
é uma declaração ternária. A expressão é NR%2
avaliada como verdadeira (diferente de zero) se o número da linha for ímpar. No caso, a expressão ternária retorna um espaço. Se for avaliado como falso (zero), a nova linha será retornada.
Alternativo
Como sugerido por Costas nos comentários:
$ 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
Aqui, a instrução ternária NR%2?" ":RS
é usada para retornar um espaço ou o separador de registro de entrada ( RS
, padrão = nova linha). Este valor é atribuído ao separador de registros de saída ORS
,. O 1
final do comando é a abreviação enigmática do awk para imprimir o registro.