Utilisez echo
, il ajoutera automatiquement une nouvelle ligne :
echo "`curl -s "http://myserver.com/api?param=1¶m=2"`" | sudo tee -a /var/log/myserver.log
Alternativement, vous pouvez essayer le -w
option, mais j'ai trouvé qu'elle imprime en quelque sorte des caractères amusants sur la console (mais pas sur le fichier, heureusement):
curl -s "http://myserver.com/api?param=1¶m=2" -w "\n" | sudo tee -a /var/log/myserver.log
Le plus simple est juste d'ajouter une nouvelle ligne en utilisant echo
curl -s "http://myserver.com/api?param=1¶m=2" | sudo tee -a /var/log/myserver.log && echo "" >> /var/log/myserver.log
J'utilise awk 1
pour cela (où 1
est juste quelque chose qui est évalué comme vrai) :
$ printf a|awk 1
a
$ printf a\\n|awk 1
a
$
Cela devrait fonctionner avec gawk, BWK awk / nawk (fourni avec OS X) et mawk (fourni avec Debian). sed -n p
fonctionne avec le sed d'OS X mais pas avec le sed de GNU.
Une alternative Bash uniquement :
printf %s\\n "$(cat)"
Notez que $()
supprime tous les sauts de ligne à partir de la fin, donc par exemple echo $'a\n\n'|printf %s\\n "$(cat)"
n'imprime qu'un seul saut de ligne.
Vous pouvez également remplacer printf %s\\n
avec echo
, mais par exemple x=-nene;echo "$x"
n'imprime rien dans Bash (sauf si xpg_echo
et le mode POSIX sont activés).