J'ai un script Bash. Si j'exécute cette commande pour:
alors je reçois une trouvaille de grep par ligne dans le terminal
LC_ALL=C grep -o --color -h -E -C 0 -r "$pattern" /pathto/Pre_N/ | tr -d '[:digit:]' | sort | uniq
Cependant, si je le mettit dans une variable de sortie, le formatage est perdu (lors de l'écho à un fichier ou à l'écho à l'écran).
#!/usr/bin/env bash
output=$(LC_ALL=C grep -o --color -h -E -C 0 -r "$pattern" /pathto/Pre_N/ | tr -d '[:digit:]' | sort | uniq)
echo $output > $fn
Comment puis-je conserver la mise en forme de la sortie de cette commande une fois que je l'enregistre à une variable?
Utilisez des devis:
echo "$output" > $fn
la ligne d'écho est analysée par la coque (après une expansion variable) et tous les espaces caractères entre les paramètres sont réduits dans un espace simple. A l'exemple:
$ var1="toto
> titi
> tutu
> "
$ echo $var1
toto titi tutu
$ echo "$var1"
toto
titi
tutu