Cara Mengganti Rentetan dalam Fail di Bash

How Replace String File Bash



Sebagai pengaturcara, anda mungkin perlu bekerja dengan pelbagai jenis fail untuk menyimpan data secara sementara atau kekal. Kadang kala, anda mungkin perlu mengganti sebahagian fail atau mengubah kandungan fail tertentu. Untuk mengganti kandungan dalam fail, anda mesti mencari rentetan fail tertentu. The tetapi perintah digunakan untuk menggantikan sebarang string dalam fail menggunakan skrip bash. Perintah ini dapat digunakan dengan berbagai cara untuk mengganti isi fail dalam bash. The ‘awk Perintah juga dapat digunakan untuk mengganti rentetan dalam file. Tutorial ini akan menunjukkan kepada anda cara mengganti nilai rentetan dari fail menggunakan skrip bash. Fail teks bernama Jualan.txt dengan kandungan berikut dibuat untuk menunjukkan operasi penggantian.

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.