Salah satu tugas paling umum saat menulis skrip Bash atau bekerja di baris perintah Linux adalah membaca dan menulis file.
Artikel ini menjelaskan cara menulis teks ke file di Bash, menggunakan operator pengalihan dan tee
perintah.
Menulis ke File menggunakan Operator Pengalihan #
Di Bash, pengalihan output memungkinkan Anda untuk menangkap output dari perintah dan menulisnya ke file.
Format umum untuk mengarahkan dan menulis output ke file adalah sebagai berikut:
output > filename
output >> filename
>
operator redirection menulis output ke file yang diberikan. Jika file ada, itu dipotong menjadi nol panjang. Jika tidak, file akan dibuat. Berhati-hatilah saat menggunakan operator ini karena Anda dapat menimpa file penting.>>
operator redirection menambahkan output ke file yang diberikan. File dibuat jika tidak ada.
Anda harus memiliki izin menulis ke file. Jika tidak, Anda akan menerima kesalahan izin ditolak.
Berikut adalah contoh sederhana yang menunjukkan bagaimana mengarahkan ulang output echo
perintah ke file:
echo "this is a line" > file.txt
Untuk mencegah menimpa file yang ada, aktifkan opsi “noclobber” dengan set
bawaan:
set -o noclobber
echo "this is a line" > file.txt
bash: file.txt: cannot overwrite existing file
>|
operator memungkinkan Anda untuk mengganti opsi Bash “noclobber”:
set -o noclobber
echo "this is a line" >| file.txt
>>
operator menambahkan output ke akhir file, daripada menimpa file:
echo "this is a line" >> file.txt
Gunakan printf
perintah untuk membuat keluaran yang kompleks:
printf "Hello, I'm %s.\n" $USER > file.txt
Jika Anda ingin menulis beberapa baris ke file, gunakan pengalihan Here document(Heredoc).
Misalnya, Anda dapat meneruskan konten ke cat
perintah dan tulis ke file:
cat << EOF > file.txt
The current working directory is: $PWD
You are logged in as $(whoami)
EOF
Untuk menambahkan baris, ubah >
dengan >>
sebelum nama file:
cat << EOF >> file.txt
The current working directory is: $PWD
You are logged in as $(whoami)
EOF
Anda dapat menulis output dari perintah apa pun ke file:
date +"Year: %Y, Month: %m, Day: %d" > file.txt
Output dari date
perintah akan ditulis ke file.
Menulis ke File menggunakan tee
Perintah #
tee
perintah membaca dari input standar dan menulis ke output standar dan satu atau lebih file secara bersamaan.
echo "this is a line" | tee file.txt
tee
perilaku default perintah adalah menimpa file yang ditentukan, sama seperti >
operator. Untuk menambahkan output ke file, jalankan perintah dengan -a
(--append
) pilihan:
echo "this is a line" | tee -a file.txt
Jika Anda tidak ingin tee
untuk menulis ke keluaran standar, Anda dapat mengarahkannya ke /dev/null
:
echo "this is a line" | tee file.txt >/dev/null
Untuk menulis teks ke lebih dari satu file, tentukan file sebagai argumen ke tee
perintah:
echo "this is a line" | tee file_1.txt file_2.txt file_3.txt
Keuntungan lain dari tee
perintahnya adalah Anda dapat menggunakannya bersama dengan sudo
dan menulis ke file yang dimiliki oleh pengguna lain. Untuk menambahkan teks ke file yang Anda tidak memiliki izin menulis, tambahkan sudo
sebelum tee
:
echo "this is a line" | sudo tee file.txt
echo
keluaran perintah dilewatkan sebagai masukan ke tee
, yang meningkatkan izin sudo dan menulis teks ke file.
Kesimpulan #
Di Linux, untuk menulis teks ke file, gunakan >
dan >>
operator pengalihan atau tee
perintah.