回答:
演算子を使用して、テキスト行をファイルに追加できます>>
。
echo "hello world" >> my_file.txt
またはあなたの場合
echo "alias list='ls -cl --group-directories-first'" >> config.fish
引用符の種類に注意してください。
-i
ファイルを更新し(それ以外の場合は結果をstdoutに出力します)、$
ファイルの末尾に一致する正規表現で、ファイルa
名に次のテキストを追加します。
echo "hello world" >> my_file.txt
で新しい最終行を作成しませんHW
が、最終行の文字列に追加します。
HW
@timo とは何ですか?
echo
改行が追加されます(単なる文字列ではなく、行になります)。で改行をオフに切り替えることができ-n
ます。
特に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
Stefanoの答えに加えて、以下も使用できますcat
。
ヒアドキュメントの使用:
$ cat >> config.fish <<'EOF'
> alias list='ls -cl --group-directories-first'
> EOF
<<'EOF'
は、「次の行を入力として取得し、行に到達するまで」を意味しますEOF
。引用符は、文字どおり入力を受け取ることを意味します。
または、stdinの行を入力します。
$ cat >> config.fish
次に、行を貼り付けるか入力し、を押しEnterて新しい行に移動し、Ctrl + Dを押して終了をマークします。
>
しますが、1つだけを指定すると、ファイルは切り捨てられ、追加されません。より安全なコマンドには、sedを使用できます。–sed -i '$a hello world' filename