2012-06-22 7 views

答えて

168
echo "some data for the file" >> fileName 
+0

この演算子の名前は何ですか?私はそれについてのマニュアルを見つけたいと思います。 –

+21

オペレータは、出力をファイルにリダイレクトします(存在する場合、ファイルを上書きします)。 >>は、既存のファイルに追加します。 –

+1

ありがとう、もし誰かがそれを必要とする場合は、wikiページへのリンクがあります。http://en.wikipedia.org/wiki/Redirection_(computing)#Redirecting_standard_input_and_standard_output –

34

あなたはファイルにコマンドの出力をリダイレクトすることができます:あなたが直接書き込みたい場合は、コマンドがecho 'text'

ある

$ cat file > copy_file 

またはそれに追加

$ cat file >> copy_file 

$ echo 'Hello World' > file 
+0

root権限が必要な場合: 'sudo sh -c 'cat file>/etc/init/gunicorn.conf''(上記のlukaseratのコメントのおかげで) – aero

86
#!/bin/sh 

FILE="/path/to/file" 

/bin/cat <<EOM >$FILE 
text1 
text2 
text3 
text4 
EOM 
+1

niceは複数行の出力を受け取ります。 –

+3

初心者の方は、このファイルをどうすればいいのか正確に知ることができます。保存方法、実行方法など – Danny

+0

単純にコードを記述するのではなく、説明してください。それはみんなにとって、特に初心者の方にとってははるかに役立つでしょう。 –

18
#!/bin/bash 

cat > FILE.txt <<EOF 

info code info 
info code info 
info code info 

EOF 
+14

あなたのコードの説明は、他の人にもっと使いやすくするための道のりです。 "here document"や "redirection"のような語彙の吹き出しでも、サーチャーを他のリソースに向けることができます。 – Palpatim

+0

このようなことは説明が必要ではありません。 –

+2

「EOF」に関する情報と関連するテクニック:http://stackoverflow.com/a/2954835/712334 –

8

私はこの答えのように:

cat > FILE.txt <<EOF 

info code info 
... 
EOF 

をしかし、あなたはただ、すでにこのよう

存在しているもの一掃することなく、ファイルの最後に何かを追加したい場合cat >> FILE.txt << EOFを示唆している:

cat >> FILE.txt <<EOF 

info code info 
... 
EOF 
+1

この回答が現在の問題を解決する際にどのようにOPを助けるかについての説明をいくつか追加してください –

3

@lyconoからのリクエストに応じて、私のコメントを移動する

あなたがroot権限でこれを行うために必要がある場合は、それをこのように実行します。

sudo sh -c 'echo "some data for the file" >> fileName' 
8

を私はこのいまいましい古い質問ですけど、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は、何とか面白い方法で使用できます。

関連する問題