O primeiro argumento para printf
, seja C printf()
ou printf
utility ou awk
'co_de% é necessário 1 e é o formato .
Você quer:
awk '{printf "%s", $0}'
aqui. Se você não quiser um separador de registros de saída, também poderá fazer:
awk -v ORS= '{print}' < mycsv.csv
Ou até mesmo:
awk -v ORS= 1 < mycsv.csv
( printf()
é a ação padrão, true é a condição padrão, mas você precisa especificar pelo menos uma ação ou condição, {print}
é uma maneira de dizer true ).
Embora aqui, 1
seja suficiente:
tr -d '\n' < mycsv.csv
Ou se você ainda quiser um caractere de nova linha à direita para que a saída ainda seja texto:
paste -sd 'tr -d '\r\n' < mycsv.csv
' mycsv.csv
Também parece que o seu arquivo tem delimitadores de linha CRLF no estilo da Microsoft, portanto, convém também excluir os caracteres CR:
awk -v RS='\r\n' -v ORS= 1 < mycsv.csv
Ou apenas as sequências CRLF com tr
implementações que suportam mais do que um único caractere awk
(que inclui RS
e gawk
mas não o macOS mawk
):
awk -v RS='\r?\n' -n ORS= 1 < mycsv.csv
Ou:
awk '{printf "%s", $0}'
que está com o awk
opcional para manipular os delimitadores de linha Unix ou MS-DOS.
Ou use itens como \r
ou dos2unix
para converter o arquivo para o formato Unix primeiro.
Notas
1 o argumento de formato para d2u
é necessário em a especificação padrão da utilidade printf
. Em awk
e gawk
, omitindo isso resulta em um erro. Em mawk
busybox
, é equivalente a awk
e printf ""
derivado da implementação original (como em awk
), é equivalente a macOS
(de pouca utilidade, pois ainda é considerado um formato, você ainda receberá um erro se printf $0
contiver $0
caracteres).