新しい行の下にコンテンツをリダイレクトする(追加の構文やパラメータは必要ありません)

新しい行の下にコンテンツをリダイレクトする(追加の構文やパラメータは必要ありません)

ファイルにコンテンツを追加しようとしました。

printf "\nsource ~/script.sh" >> /etc/bash.bashrc
echo -e "\nsource ~/script.sh" >> /etc/bash.bashrc
cat >> "/etc/bash.bashrc" <<< "source ~/script.sh"

3つの方法すべてが機能します。catここで文字列は最後から読む必要があるので(にcat追加した後)、あまり快適ではないと思います。[end][start]

どの方法も自動的に行を壊さず、\n個人的に最後の手段として and 構文を使用します。また、ここに文字列に改行文字を追加する方法がわからず、この方法でそのような方法が見つかりませんでした。printfecho文書

私が探しているのは、パラメータや構文を追加せずに行を自動的に削除できるユーティリティです。 nixテキスト処理ユーティリティについて読みましたが、目的のものが見つかりませんでした。そのようなユーティリティを知っていますか?

ベストアンサー1

cat「間違った方向」という行を書く必要はありません。これは問題なく動作します(もちろん、ここの文字列の矢印はまだ奇妙な方向を指します)。

$ cat <<< "some text" >> testfile
$ cat testfile
some text

コメントで述べたように、here-stringは末尾に改行文字を追加しますが、withprintfechoyouは次のように使用します。\n 前にひも。 echoここにある文字列のように、通常は末尾の改行が追加されるので、これが必要なすべてであればecho大丈夫でしょう(ほとんどのシェルに組み込まれた関数です。)

すべてのコマンドは改行で若干異なる動作をします。

cat >> file <<< "string"        # newline at end
printf "\nstring" >> file       # newline at beginning
echo -e "\nstring" >> file      # newline at beginning and at the end

正直なところ、私はこの表記に慣れるのが最善だと思います\nが、気に入らない場合は常にここに文書があります(先行および末尾の改行がここに含まれています)。

cat >> file <<EOF

some text
EOF

おすすめ記事