file.txtに "aaaa"行があり、その後に空行だけを追加し、その空行の後にテキスト行を追加したいとします。 次 の
ようにしました。これが 見えた。2行のテキストの間に空白行はありません。 なぜこれが起こり、どのように削除するのですか?
答え1
echo
引数として使用された文字列を出力したら、出力文字列の末尾に改行文字を追加して行を終了します。
そして
echo "string"
あなたはstring
最後に改行文字を取得します。
したがって、
echo -e "\n"
最後に改行文字と改行文字が表示されます(つまり、2つの空白行)。
追加の改行文字を必要としない(たとえば、終了しない行を出力する)、そのecho
オプションを使用するか-n
、この場合は空の行のみを挿入する場合は引数と一緒にまたはecho ""
引数なしで使用してください。echo
からhelp echo
:bash
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
あるいは、単一のリダイレクトで両方のステートメントを実行する別の方法は次のとおりです。
{
printf '\n'
printf 'bbbb\n'
} >>file.txt
または単に
printf '\nbbbb\n' >>file.txt
関連: