Ada beberapa cara untuk membaca dan menulis file di bash. Cara paling sederhana adalah menggunakan operator > dan >>.
- > operator akan menimpa data yang ada
- >> operator akan menambahkan data
Format umum penggunaan operator redirection adalah:
Data > Nama File
Data >> Nama File
Mari kita pahami penulisan ke prosedur file dengan contoh:
Cara menulis file menggunakan operator pengalihan
Seperti dibahas di atas, pendekatan penulisan ke file yang sederhana dan mudah adalah menggunakan operator pengalihan. Misalnya, jika Anda ingin mengubah teks dari file yang sudah ada, buat file teks terlebih dahulu dengan nama testfile.txt dan tulis apa saja di dalamnya:
Simpan file teks.
Ketik perintah yang disebutkan di bawah ini di terminal:
$ echo Menimpa teks yang ada di file > testfile.txt
Peras berlebihan mungkin berisiko; oleh karena itu, adalah praktik yang baik untuk mengaktifkan noclobber. Menyetel noclobber akan memblokir penimpaan apa pun ke file apa pun yang keluar.
$ set –o noclobber$ echo Menimpa teks yang ada di file > testfile.txt
Tetapi jika Anda ingin melewati noclobber maka gunakan > | operator alih-alih > :
$ echo Menimpa teks yang ada di file >| testfile.txtAtau Anda cukup menonaktifkan noclobber:
$ set + atau noclobber
Tetapi perintah ini akan menghilangkan perlindungan dari semua file.
Output di atas menunjukkan bahwa teks yang ada telah ditimpa. Sekarang, mari kita gunakan >> operator:
$ echo Menambahkan teks ke file teks yang ada >> testfile.txt
dibuang tidak selalu ideal untuk digunakan karena Anda tidak dapat memformat teks menggunakannya, oleh karena itu gunakan printf sebagai pengganti echo untuk memformat teks seperti yang ditunjukkan dalam perintah berikut:
$ printf Selamat datang Ini adalah file teks baru. > newtestfile.txt
Mari kita pahami konsepnya dengan contoh skrip bash. Buka Vim dengan mengetik vim di terminal. Jika Anda tidak memiliki editor Vim di perangkat Anda, maka instal menggunakan:
$ sudo apt install vimKetik skrip:
#! /bin/bashgema Masukkan nama Anda
baca nama
echo $nama > data_dir.txt
echo Masukkan usia Anda
usia baca
echo $umur >> data_dir.txt
cat data_dir.txt
NS kucing Perintah ini digunakan untuk membuat dan mengedit file. Simpan skrip di atas di Vim dengan beralih mode setelah menekan tombol ESC kunci dan kemudian ketik : di myscript.sh . Buka terminal dan jalankan kode:
Cara menulis file menggunakan Heredoc
Jika Anda ingin menulis beberapa baris, maka cara termudah adalah menggunakan Heredoc. Di sini dokumen, juga dikenal sebagai Heredoc, adalah blok kode multiguna. Sintaks Heredoc adalah:
Memerintah<<[-] Delimiter.
teks/perintah
.
Pembatas
String apa pun dapat digunakan sebagai pengganti Delimiter, dan - juga dapat digunakan untuk menghapus spasi tab apa pun dalam file. Mari kita memahaminya menggunakan contoh sederhana:
#! /bin/bashkucing<< TEXTFILE
Ini adalah file teks.
File ini dibuat menggunakan heredoc.
FILE TEKS
Perintah kucing skrip di atas membuat file teks dengan nama TEXTFILE, dan menulis teks ke dalam file yang baru saja dibuat. Sekarang simpan file dengan nama myscript.sh . Luncurkan terminal dan jalankan skrip.
Cara menulis file menggunakan perintah Tee
Metode lain untuk menulis file adalah menggunakan perintah Tee. Seperti namanya, perintah ini mengambil input dan menulis ke file dan menampilkan output secara bersamaan. Secara default, perintah Tee akan menimpa data yang ada.
$ echo Ini adalah beberapa teks | file teks tee.txt
Untuk menambahkan gunakan –a:
$ echo Ini adalah teks lain | tee – file teks.txt
Untuk menulis beberapa baris, gunakan:
$ echo Menambahkan teks ke banyak file | tee textfile1.txt textfile2.txt textfile3.txt
Perintah di atas akan membuat tiga file jika tidak ada dan menulis teks ke masing-masing file.
Kesimpulan
Panduan ini berfokus pada beberapa pendekatan untuk menulis ke file di bash dengan contoh. Dalam skrip bash, ada beberapa cara untuk menulis file, tetapi yang paling sederhana adalah menggunakan operator pengalihan >, >>. Untuk menulis beberapa baris, heredoc dapat digunakan, dan jika Anda ingin menulis data yang sama ke beberapa baris, maka perintah tee cukup berguna.