Você quer dizer algo assim?
$ cat temp
This is Some Long Text to Test
This is Also Some Long Text to Test
Final Call: Some Text to Complete This
$ INPUTS=""
$ FOLDWIDTH=5
$ FILENAME=temp
$ cat $FILENAME
This is Some Long Text to Test
This is Also Some Long Text to Test
Final Call: Some Text to Complete This
$ for i in $(seq 1 $(awk 'END{print NR}' $FILENAME))
> do
> INPUTS="$INPUTS <(awk 'NR==$i' $FILENAME | fold -w $FOLDWIDTH)"
> done
$ bash -c "paste $INPUTS"
This This Final
is So is Al Call
me Lo so So : Som
ng Te me Lo e Tex
xt to ng Te t to
Test xt to Compl
Test ete T
his
É um pouco hack-y, especialmente o uso de bash -c
para iniciar um processo filho para interpretar a linha de comando final. Eu estava tentando pensar em outras maneiras de analisar o arquivo linha por linha e alimentar cada um deles como um descritor de arquivo em paste
, mas não consegui uma boa solução, recorrendo assim a isso. Além disso, minha sugestão é usar a substituição do processo bash no caso de usar bash -c
não é óbvio o suficiente.