Você pode criar uma função (ou shell script) que contenha o texto e atribua as barras invertidas:
function wrapit { fmt -s -w 50 - | sed '$!s/$/ \/'; }
Isso usa a ferramenta fmt para agrupar o texto em 50 caracteres (ajuste como quiser). Ele também informa fmt
para ( s
) somente a divisão, para que não se junte a nenhuma linha curta na entrada. Em seguida, ele usa sed para adicionar barras invertidas a todas as linhas, exceto a última:
-
$
é o endereço da última linha no arquivo
-
!
significa aplicar o comando subseqüente nas linhas que não correspondem ao endereço fornecido (aqui, tudo menos a última linha)
-
s/$/ \/
diz para substituir o "fim da linha" ( $
) por um espaço e uma barra invertida, onde a barra invertida precisa ser escapada para finalmente aparecer como uma única barra invertida.
Insira o texto nessa função / script ou execute o script, insira o texto e finalize o texto com Control-D:
echo "openssl pkcs12 -export -in intermediate/certs/lala-lira.cert.pem -inkey intermediate/private/lala-lira.key.pem -out intermediate/private/lala-lira.pfx" | wrapit
ou
$ wrapit
openssl pkcs12 -export -in intermediate/certs/lala-lira.cert.pem -inkey intermediate/private/lala-lira.key.pem -out intermediate/private/lala-lira.pfx
Control-D
Este é um script simplista - não compreende opções de comando ou aspas; isso transformaria sua entrada de exemplo em:
openssl pkcs12 -export -in \
intermediate/certs/lala-lira.cert.pem -inkey \
intermediate/private/lala-lira.key.pem -out \
intermediate/private/lala-lira.pfx
mas eu queria apresentar uma resposta genérica caso você quisesse uma solução com script para várias entradas diferentes.