web-dev-qa-db-ja.com

エディターを開かずにテキストファイルに行を追加するコマンド

エディターを開かずにファイルに追加したい行があると仮定します。

この行を追加するにはどうすればよいですか

alias list='ls -cl --group-directories-first'

このファイルに

config.fish
144
NES

>>演算子を使用して、ファイルにテキストのlineを追加できます。

echo "hello world" >> my_file.txt

またはあなたの場合

echo "alias list='ls -cl --group-directories-first'" >> config.fish

引用符の種類 に注意してください。

233
Stefano Palazzo

特にUbuntuで利用可能な複数のテキスト処理ユーティリティを介して、テキストエディタを開かずにファイルに追加する方法はたくさんあります。

  • tee -a config.fish <<< "alias list='ls -cl --group-directories-first'"
  • awk 'BEGIN{ printf "alias list=\x27ls -cl --group-directories-first\x27\n" >> "config.fish" }'
  • sed -i '$a alias list='"'"'ls -cl --group-directories-first'"'" config.fish
3

Stefano's answer に追加して、catを使用することもできます。

  • ヒアドキュメントの使用:

    $ cat >> config.fish <<'EOF'
    > alias list='ls -cl --group-directories-first'
    > EOF
    

    <<'EOF'は、「EOFだけの行に到達するまで、以下を入力として使用する」ことを意味します。引用符は、文字どおり入力を受け取ることを意味します。

  • または、stdinの行を入力します。

    $ cat >> config.fish
    

    次に、行を貼り付けるか入力して、を押します Enter 新しい行に移動するには、Ctrl + Dを押して終了をマークします。

1
wjandrea