Bagaimana cara menambahkan output perintah ke akhir file teks?
478
Gunakan >>
alih-alih >
saat mengarahkan output ke file:
your_command >> file_to_append_to
Jika file_to_append_to
tidak ada, itu akan dibuat.
Contoh:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
echo
menghapus baris baru dari string. Bagaimana Anda menambahkan file string yang berisi baris baru?Untuk
append
menggunakan file>>
maka output seharusnya
Untuk
overwrite
menggunakan file>
maka put out adalah
hello tom
sumber
Anda dapat menggunakan operator >>. Ini akan menambahkan data dari perintah ke akhir file teks.
Untuk menguji ini coba jalankan:
Lakukan ini beberapa kali dan kemudian jalankan:
Anda akan melihat teks Anda telah ditambahkan beberapa kali ke file textfile.txt.
sumber
Gunakan
command >> file_to_append_to
untuk 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 menambahkanset -o noclobber
ke.bashrc
.Ini memastikan bahwa jika Anda secara tidak sengaja mengetik
command > file_to_append_to
ke 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.sumber
Gunakan
>>
operator untuk menambahkan teks ke file.sumber
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 >>
Utas ini memiliki jawaban yang bagus tentang tee
sumber
untuk seluruh pertanyaan:
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
sumber
Saya akan menggunakan printf daripada echo karena lebih dapat diandalkan dan proses pemformatan seperti baris baru
\n
dengan benar.Contoh ini menghasilkan output yang mirip dengan gema dalam contoh sebelumnya:
Namun jika Anda mengganti printf dengan gema dalam contoh ini, gema akan memperlakukan \ n sebagai string, sehingga mengabaikan maksudnya
sumber
Saya sarankan Anda melakukan dua hal:
>>
dalam skrip shell Anda untuk menambahkan konten ke file tertentu. Nama file dapat diperbaiki atau menggunakan beberapa pola.sumber
Misalnya file Anda mengandung:
jika Anda ingin menambahkan pada akhir file maka ----> ingat spasi antara 'teks' >> 'nama file'
Dan untuk menimpa isi file:
sumber
cat
... hanya benar-benar aneh. (Ini kosong karena Anda baru saja mengarahkan keluaran standar ke file.)