GNU/Linux >> Linux の 問題 >  >> Linux

コマンド出力に改行を追加する

echo を使用 、自動的に改行を追加します:

echo "`curl -s "http://myserver.com/api?param=1&param=2"`" | sudo tee -a /var/log/myserver.log

または、 -w を試すこともできます オプションですが、どういうわけか変な文字がコンソールに出力されることがわかりました (ただし、幸いなことに、ファイルには出力されません):

curl -s "http://myserver.com/api?param=1&param=2" -w "\n" | sudo tee -a /var/log/myserver.log

最も簡単なのは echo を使用して改行を追加することです

curl -s "http://myserver.com/api?param=1&param=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 モードが有効になっています)。


Linux
  1. Bash Echoコマンドライン自体で実行されるコマンドライン(スクリプトではない)?

  2. $ _対!$。前のコマンドと出力リダイレクトの最後の引数?

  3. エコーコマンドでフォントを変更しますか?

  1. コマンドラインを介してVobファイルをマージしますか?

  2. エコー:コマンドが見つかりません

  3. PS コマンドの完全な出力の表示

  1. 出力をファイルに追加する方法は?

  2. コマンド出力を変数に保存するときに改行を保持する方法は?

  3. シェル コマンドの出力の最初の行を取得する