Linuxのシェルスクリプトを使用してテキストファイルにデータを自動的に書き込む方法はありますか?bash/shellスクリプトによるテキストファイルのデータのオープンと書き込み
ファイルを開くことができました。しかし、私はそれにデータを書き込む方法を知らない。
Linuxのシェルスクリプトを使用してテキストファイルにデータを自動的に書き込む方法はありますか?bash/shellスクリプトによるテキストファイルのデータのオープンと書き込み
ファイルを開くことができました。しかし、私はそれにデータを書き込む方法を知らない。
echo "some data for the file" >> fileName
あなたはファイルにコマンドの出力をリダイレクトすることができます:あなたが直接書き込みたい場合は、コマンドがecho 'text'
$ cat file > copy_file
またはそれに追加
$ cat file >> copy_file
$ echo 'Hello World' > file
root権限が必要な場合: 'sudo sh -c 'cat file>/etc/init/gunicorn.conf''(上記のlukaseratのコメントのおかげで) – aero
#!/bin/sh
FILE="/path/to/file"
/bin/cat <<EOM >$FILE
text1
text2
text3
text4
EOM
niceは複数行の出力を受け取ります。 –
初心者の方は、このファイルをどうすればいいのか正確に知ることができます。保存方法、実行方法など – Danny
単純にコードを記述するのではなく、説明してください。それはみんなにとって、特に初心者の方にとってははるかに役立つでしょう。 –
#!/bin/bash
cat > FILE.txt <<EOF
info code info
info code info
info code info
EOF
あなたのコードの説明は、他の人にもっと使いやすくするための道のりです。 "here document"や "redirection"のような語彙の吹き出しでも、サーチャーを他のリソースに向けることができます。 – Palpatim
このようなことは説明が必要ではありません。 –
「EOF」に関する情報と関連するテクニック:http://stackoverflow.com/a/2954835/712334 –
私はこの答えのように:
cat > FILE.txt <<EOF
info code info
...
EOF
をしかし、あなたはただ、すでにこのよう
存在しているもの一掃することなく、ファイルの最後に何かを追加したい場合cat >> FILE.txt << EOF
を示唆している:
cat >> FILE.txt <<EOF
info code info
...
EOF
この回答が現在の問題を解決する際にどのようにOPを助けるかについての説明をいくつか追加してください –
@lyconoからのリクエストに応じて、私のコメントを移動する
あなたがroot権限でこれを行うために必要がある場合は、それをこのように実行します。
sudo sh -c 'echo "some data for the file" >> fileName'
を私はこのいまいましい古い質問ですけど、OPは、スクリプトについてですとして、そしてGoogleは私をもたらしたという事実のためにここでは、同時に読み書きのためのファイル記述子を開くことについても言及する必要があります。
#!/bin/bash
# Open file descriptor (fd) 3 for read/write on a text file.
exec 3<> poem.txt
# Let's print some text to fd 3
echo "Roses are red" >&3
echo "Violets are blue" >&3
echo "Poems are cute" >&3
echo "And so are you" >&3
# Close fd 3
exec 3>&-
次に、端末
$ cat poem.txt
Roses are red
Violets are blue
Poems are cute
And so are you
この例でcat
ファイルは、ファイルディスクリプタ3に読み書きするためにオープンするファイルpoem.txtの原因となることも* nixのボックスは、より多くのFDのを知っていることを示していますstdin、stdout、およびstderr(fd 0,1,2)です。それは実際にたくさん保持しています。通常、カーネルが割り当てることができるファイルディスクリプタの最大数は/proc/sys/file-max
または/proc/sys/fs/file-max
にありますが、9より上のfdを使用するとシェル内部で使用されているfdと競合する危険があります。だから気にしないで、fdの0-9だけを使用してください。 bashスクリプトに9つのファイル記述子が必要な場合は、別の言語を使用する必要があります。
fdは、何とか面白い方法で使用できます。
この演算子の名前は何ですか?私はそれについてのマニュアルを見つけたいと思います。 –
オペレータは、出力をファイルにリダイレクトします(存在する場合、ファイルを上書きします)。 >>は、既存のファイルに追加します。 –
ありがとう、もし誰かがそれを必要とする場合は、wikiページへのリンクがあります。http://en.wikipedia.org/wiki/Redirection_(computing)#Redirecting_standard_input_and_standard_output –