Jualan.txt
Kawasan Tarikh
01/01/2020 60000 Dhaka
10/02/2020 76000 Rajshahi
21/03/2020 54000 Khulna
15/04/2020 78000 Chandpur
17/05/2020 45000 Bogra
02/06/2020 67000 Comilla
Ganti String dalam Fail dengan Perintah `sed`
Sintaks asas ` sed Perintah untuk mengganti tali tertentu dalam fail diberikan di bawah.
Sintaks
sed -i / carian_string / ganti_string / 'nama fail
Setiap bahagian sintaks di atas dijelaskan di bawah.
‘-I’ pilihan digunakan untuk mengubah isi fail asal dengan rentetan pengganti jika rentetan carian ada di dalam fail.
'S' menunjukkan arahan pengganti.
‘Carian_string’ mengandungi nilai rentetan yang akan dicari dalam fail untuk diganti.
‘Ganti_string’ mengandungi nilai rentetan yang akan digunakan untuk menggantikan kandungan fail yang sesuai dengan ‘Carian_string’ nilai.
'nama fail' mengandungi nama fail di mana carian dan penggantian akan digunakan.
Contoh 1: Ganti Fail dengan Perintah ‘sed’
Dalam skrip berikut, teks carian dan penggantian akan diambil dari pengguna. Sekiranya rentetan carian terdapat dalam ‘Sales.txt’, maka rentetan itu akan diganti dengan rentetan pengganti. Di sini, carian sensitif kes akan dilakukan.
#! / bin / bash# Tetapkan nama fail
nama fail='Jualan.txt'
# Ambil rentetan carian
membaca -p 'Masukkan rentetan carian:'cari
# Ambil tali ganti
membaca -p 'Masukkan rentetan ganti:'ganti
sekiranya [[ $ cari !='' && $ ganti !='' ]];kemudian
sed -i /$ cari/$ ganti/ ' $ nama fail
menjadi
Pengeluaran
Contoh 2: Ganti Fail dengan Perintah ‘sed’ dengan Bendera ‘g’ dan ‘i’
Skrip berikut akan berfungsi seperti contoh sebelumnya, tetapi rentetan carian akan dicari secara global untuk bendera ‘g’, dan carian tanpa huruf besar-kecil akan dilakukan untuk bendera ‘i’.
#! / bin / bash# Ambil rentetan carian
membaca -p 'Masukkan rentetan carian:'cari
# Ambil tali ganti
membaca -p 'Masukkan rentetan ganti:'ganti
sekiranya [[ $ cari !='' && $ ganti !='' ]];kemudian
sed -i /$ cari/$ ganti/ beri ' $ 1
menjadi
Pengeluaran
Contoh 3: Ganti Fail dengan Perintah ‘sed’ dan Pola Digit Pemadanan
Skrip berikut akan mencari semua kandungan berangka dalam fail dan akan mengganti kandungannya dengan menambahkan '$' simbol pada awal nombor.
#! / bin / bash# Periksa nilai argumen baris perintah ada atau tidak
sekiranya [ $ 1 !='' ];kemudian
# Cari semua rentetan yang mengandungi digit dan tambah $
sed -i 's / b [0-9] {5 } b / $ & / g' $ 1
menjadi
Pengeluaran
Ganti String dalam Fail dengan Perintah `awk`
The ‘ awk’ perintah adalah cara lain untuk menggantikan rentetan dalam fail, tetapi perintah ini tidak dapat mengemas kini fail asal secara langsung seperti ‘ tetapi arahan.
Contoh 4: Ganti Fail dengan Perintah ‘awk’
Skrip berikut akan menyimpan kandungan yang dikemas kini di temp.txt fail yang akan dinamakan semula dengan fail asal.
#! / bin / bash# Periksa nilai argumen baris perintah ada atau tidak
sekiranya [ $ 1 !='' ];kemudian
# Cari semua rentetan berdasarkan tarikh
awk '{sub ('02 / 06/2020', '12/06/2020')} 1 ' $ 1 >temp.txt&& mvtemp.txt$ 1
menjadi
Pengeluaran
Kesimpulannya
Artikel ini menunjukkan cara menggunakan skrip bash untuk menggantikan rentetan tertentu dalam sebuah fail. Tugas untuk mengganti rentetan dalam fail semestinya menjadi lebih mudah bagi anda setelah mengamalkan contoh di atas.