Jawaban:
Gunakan >>alih-alih >saat mengarahkan output ke file:
your_command >> file_to_append_to
Jika file_to_append_totidak ada, itu akan dibuat.
Contoh:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
Untuk appendmenggunakan file >>
echo "hello world" >> read.txt
cat read.txt
echo "hello siva" >> read.txt
cat read.txt
maka output seharusnya
hello world # from 1st echo command
hello world # from 2nd echo command
hello siva
Untuk overwritemenggunakan file >
echo "hello tom" > read.txt
cat read.txt
maka put out adalah
hello tom
Anda dapat menggunakan operator >>. Ini akan menambahkan data dari perintah ke akhir file teks.
Untuk menguji ini coba jalankan:
echo "Hi this is a test" >> textfile.txt
Lakukan ini beberapa kali dan kemudian jalankan:
cat textfile.txt
Anda akan melihat teks Anda telah ditambahkan beberapa kali ke file textfile.txt.
Gunakan command >> file_to_append_tountuk menambahkan file.
Sebagai contoh echo "Hello" >> testFile.txt
PERHATIAN: jika Anda hanya menggunakan satu >Anda akan menimpa konten file. Untuk memastikan itu tidak pernah terjadi, Anda dapat menambahkan set -o noclobberke .bashrc.
Ini memastikan bahwa jika Anda secara tidak sengaja mengetik command > file_to_append_toke file yang ada, itu akan memberi tahu Anda bahwa file tersebut sudah ada. Contoh pesan kesalahan:file exists: testFile.txt
Jadi, ketika Anda menggunakannya >hanya akan memungkinkan Anda untuk membuat file baru, bukan menimpa file yang sudah ada.
Gunakan >>operator untuk menambahkan teks ke file.
Menggunakan tee dengan opsi -a (--append) memungkinkan Anda menambahkan beberapa file sekaligus dan juga menggunakan sudo (sangat berguna saat menambahkan file yang dilindungi). Selain itu, menarik jika Anda perlu menggunakan shell lain selain bash, karena tidak semua shell mendukung operator> dan >>
echo "hello world" | sudo tee -a output.txt
Utas ini memiliki jawaban yang bagus tentang tee
untuk seluruh pertanyaan:
cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
ini akan menambahkan 720 baris (30 * 24) ke dalam o.txt dan setelah itu akan mengganti nama file berdasarkan tanggal saat ini.
Jalankan di atas dengan cron setiap jam, atau
while :
do
cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
sleep 3600
done
Saya akan menggunakan printf daripada echo karena lebih dapat diandalkan dan proses pemformatan seperti baris baru \ndengan benar.
Contoh ini menghasilkan output yang mirip dengan gema dalam contoh sebelumnya:
printf "hello world" >> read.txt
cat read.txt
hello world
Namun jika Anda mengganti printf dengan gema dalam contoh ini, gema akan memperlakukan \ n sebagai string, sehingga mengabaikan maksudnya
printf "hello\nworld" >> read.txt
cat read.txt
hello
world
Misalnya file Anda mengandung:
1. mangesh@001:~$ cat output.txt
1
2
EOF
jika Anda ingin menambahkan pada akhir file maka ----> ingat spasi antara 'teks' >> 'nama file'
2. mangesh@001:~$ echo somthing to append >> output.txt|cat output.txt
1
2
EOF
somthing to append
Dan untuk menimpa isi file:
3. mangesh@001:~$ echo 'somthing new to write' > output.tx|cat output.tx
somthing new to write
cat... hanya benar-benar aneh. (Ini kosong karena Anda baru saja mengarahkan keluaran standar ke file.)
echomenghapus baris baru dari string. Bagaimana Anda menambahkan file string yang berisi baris baru?