echo
を使用 、自動的に改行を追加します:
echo "`curl -s "http://myserver.com/api?param=1¶m=2"`" | sudo tee -a /var/log/myserver.log
または、 -w
を試すこともできます オプションですが、どういうわけか変な文字がコンソールに出力されることがわかりました (ただし、幸いなことに、ファイルには出力されません):
curl -s "http://myserver.com/api?param=1¶m=2" -w "\n" | sudo tee -a /var/log/myserver.log
最も簡単なのは echo
を使用して改行を追加することです
curl -s "http://myserver.com/api?param=1¶m=2" | sudo tee -a /var/log/myserver.log && echo "" >> /var/log/myserver.log
awk 1
を使用しています そのために(1
true と評価されるものです):
$ printf a|awk 1
a
$ printf a\\n|awk 1
a
$
gawk、BWK awk / nawk (OS X に付属)、および mawk (Debian に付属) で動作するはずです。 sed -n p
OS X の sed では動作しますが、GNU sed では動作しません。
Bash のみの代替手段:
printf %s\\n "$(cat)"
$()
に注意してください 最後からすべての改行を削除するため、たとえば echo $'a\n\n'|printf %s\\n "$(cat)"
1 つの改行のみを印刷します。
printf %s\\n
を置き換えることもできます echo
で 、しかし例えば x=-nene;echo "$x"
Bash では何も出力しません (xpg_echo
を除く) と POSIX モードが有効になっています)。