Bagaimana cara menambahkan output dari perintah untuk akhir dari sebuah file teks?
Gunakan >>
bukan >
ketika mengarahkan output ke file:
your_command >> file_to_append_to
Jika file_to_append_to
tidak ada, maka akan dibuat.
Contoh:
$ echo "hello" > file
$ echo "world" >> file
$ cat file
hello
world
Untuk menambahkan
file menggunakan >>
echo "hello world" >> read.txt kucing read.txt echo "hello siva" >> read.txt kucing read.txt
maka output harus
hello world # 1 echo perintah hello world # dari 2 perintah echo halo siva
Untuk menimpa
file menggunakan >
echo "hello tom" > read.txt kucing read.txt maka out put adalah
hello tom
Anda dapat menggunakan >> operator. Ini akan menambahkan data dari perintah untuk akhir dari sebuah file teks.
Untuk uji coba ini berjalan:
echo "Hi this is a test" >> textfile.txt
Lakukan ini beberapa kali dan kemudian jalankan:
cat textfile.txt
Anda'll melihat teks anda telah ditambahkan beberapa kali ke textfile.txt file.
Gunakan perintah >> file_to_append_to
untuk menambahkan ke file.
Misalnya echo "Hello" >> testFile.txt
Hati-HATI: jika anda hanya menggunakan single >
anda benar-benar akan menimpa isi file. Untuk memastikan bahwa doesn't pernah terjadi, anda dapat menambahkan set-o noclobber
untuk anda .bashrc
.
Hal ini memastikan bahwa jika anda secara tidak sengaja mengetik perintah > file_to_append_to
untuk file yang ada, itu akan mengingatkan anda bahwa file yang sudah ada. Contoh pesan error: file yang ada: testFile.txt
Dengan demikian, ketika anda menggunakan >
ini hanya akan memungkinkan anda untuk membuat file baru, tidak menimpa file yang sudah ada.
untuk seluruh pertanyaan:
cmd >> o.txt && [[ $(wc -l <o.txt) -eq 720 ]] && mv o.txt $(date +%F).o.txt
ini akan menambahkan 720 garis (30*24) ke o.txt dan setelah itu akan mengubah nama file berdasarkan tanggal saat ini.
Berjalan 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
Menggunakan tee dengan pilihan -a (--append) memungkinkan anda untuk menambahkan beberapa file sekaligus dan juga untuk menggunakan sudo (sangat berguna ketika menambahkan ke file yang dilindungi). Selain itu, hal ini menarik jika anda perlu untuk menggunakan kerang lainnya selain bash, karena tidak semua kerang mendukung > dan >> operator
echo "hello world" | sudo tee -a output.txt
Ini thread memiliki jawaban yang baik tentang tee
Saya akan menggunakan printf bukan echo karena itu's lebih dapat diandalkan dan proses format seperti baris baru \n
benar.
Contoh ini akan menghasilkan output yang mirip dengan gema pada contoh sebelumnya:
printf "hello world" >> read.txt
cat read.txt
hello world
Namun jika anda adalah untuk menggantikan printf dengan echo dalam contoh ini, echo akan memperlakukan \n sebagai string, sehingga mengabaikan maksud
printf "hello\nworld" >> read.txt
cat read.txt
hello
world
Misalnya file anda berisi :
1. mangesh@001:~$ cat output.txt
1
2
EOF
jika u ingin menambahkan di akhir file kemudian ---->mengingat ruang-ruang antara 'text' >> 'nama'
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