Articles
@OhLook
echo -e “ \ n ”で1行ではなく2行の空白行が表示されるのはなぜですか?
On 2月 1, 2021 by admin file.txtに “sa行” aaaa “があるとしましょう。その後に空白行を1行だけ追加してから、空白行の後のテキスト行。
実行しました:
echo -e “\ n” >> file.txt
echo “bbbb” >> file.txt
そして、2つの空白が表示されましたaaaaとbbbbの間の行
echo “bbbb” >> file.txtのみを使用すると、2つのテキスト行の間に空白行がありません。
これが発生する理由と、それを取り除く方法?
コメント
- わかりました。正解を要約します。\ nはカーソルを次の行に移動することを意味し、'空白行を意味します。
回答
echo
は、引数として使用する文字列を出力し、出力された文字列の最後に改行文字を追加して、行を終了します。
With
echo "string"
string
が表示され、最後に改行が表示されます。
したがって、
echo -e "\n"
を使用すると、改行が取得され、最後に改行が取得されます(つまり、 2つの空の行)。
余分な改行が必要ない場合(つまり、終了していない行を出力する場合)、echo
とそのオプション、またはこの場合、空の行を挿入するだけの場合は、echo ""
またはecho
を使用します。引数なし。
bash
のhelp echo
から:
Options: -n do not append a newline -e enable interpretation of the following backslash escapes
bash
以外の他のシェルに移植可能なものが必要な場合は、代わりにprintf
を使用してください。
printf "\n" >>file.txt printf "bbbb\n" >>file.txt
または、1回のリダイレクトでこれら2つのステートメントを実行する別の方法:
{ printf "\n" printf "bbbb\n" } >>file.txt
または単に
printf "\nbbbb\n" >>file.txt
関連:
コメント
- ある場合'確かに改行すると、最初の行に自動的に追加されますエコーを使用したのに、2回目の試行でテキスト間に空白行が表示されなかったのはなぜですか(質問で説明)
- @OhLook最初の試行では、2つの改行を追加します(1つは
\n
、もう1つは、echo
が常に追加する改行から取得されます)。 2回目の試行では、文字列bbbb
の最後に改行を追加するだけです。 '混乱がどこから来ているのかよくわかりません。 - @OhLookなぜ空白行があるのでしょうか?ファイルには
aaaa\nbbbb\n
が含まれ、aaaa\n
は最初から存在し、bbbb\n
は存在していました。echo 'bbbb'
によって追加されました。echo -e '\n'
を実行すると、ファイルの既存のコンテンツに\n\n
が追加されます。すでにaaaa\n
が含まれている場合は、'がaaaa\n\n\n
になります。 - @OhLook
\n
は改行文字です。カーソルを次の行の先頭に移動します。aaaa
の最初から最後に改行がない場合、iv id =を追加すると、1行にaaaabbbb
が表示されます。 “14c35d2735″>
。
echo -e '\n'
は2つの改行を追加します。前のコメントを参照してください。ファイルには3つの改行文字が含まれています。つまり、aaaa
行の終わりである改行(最初から存在していた)と、echo -e '\n'
によって追加された2行です。 。これにより、2つの空の行が作成されます。
コメントを残す