Eu tenho um script assim:
for f in *
do
#if condition
if [[ -d $f ]]; then
echo "$f is a directory";
else
echo "$f is not a directory";
fi
done
É possível converter vários scripts em uma linha como esta? (talvez eu precise excluir #
declarações de comentários).
for f in *; do if [[ -d $f ]]; then echo "$f is a directory"; else echo "$f is not a directory"; fi done
Posso alterar a sintaxe da instrução no script acima, como:
for f in *
for f in *;
for f in *;do
O mesmo se aplica à if
condição. Em todos os casos deve gerar 1 linha adequada. Qual poderia ser a maneira automatizada de fazer isso?
Responder1
Analisar o bash em oneliners é uma tarefa difícil...
De qualquer forma, como ponto de partida, aqui vai uma sugestão para cobrir situações muito específicas como a apresentada
perl -p0e '
s/#.*//;
s/;?\s+(do|done|then|else|fi)\s+/ ; $1 /g '
Responder2
Você pode tentar o seguinte:
awk '{ printf "%s", $0 }' script.txt