Cara Mengganti String dalam File di Bash

How Replace String File Bash

Sebagai seorang programmer, Anda mungkin perlu bekerja dengan berbagai jenis file untuk menyimpan data sementara atau permanen. Terkadang, Anda mungkin perlu mengganti bagian dari file atau memodifikasi konten tertentu dari file tersebut. Untuk mengganti konten dalam file, Anda harus mencari string file tertentu. NS tetapi perintah digunakan untuk mengganti string apa pun dalam file menggunakan skrip bash. Perintah ini dapat digunakan dengan berbagai cara untuk mengganti konten file di bash. NS 'Awk Perintah ' juga dapat digunakan untuk mengganti string dalam sebuah file. Tutorial ini akan menunjukkan cara mengganti nilai string apa pun dari file menggunakan skrip bash. File teks bernama Penjualan.txt dengan konten berikut dibuat untuk menunjukkan operasi penggantian.

Penjualan.txt



Tanggal Jumlah Area

01/01/2020 60000 Dhaka
10/02/2020 76000 Rajshahi
21/03/2020 54000 Khulna
15/04/2020 78000 Chandpur
17/05/2020 45000 Bogor
02/06/2020 67000 Comila

Ganti String dalam File dengan Perintah `sed`

Sintaks dasar dari ` sed Perintah ` untuk mengganti string tertentu dalam file diberikan di bawah ini.



Sintaksis



sed -Saya 's/search_string/replace_string/'nama file

Setiap bagian dari sintaks di atas dijelaskan di bawah ini.

'-Saya' opsi digunakan untuk mengubah konten file asli dengan string pengganti jika string pencarian ada di file.

'S' menunjukkan perintah pengganti.



'cari_string' berisi nilai string yang akan dicari dalam file untuk penggantian.

'ganti_string' berisi nilai string yang akan digunakan untuk mengganti konten file yang cocok dengan 'cari_string' nilai.

'nama file' berisi nama file tempat pencarian dan penggantian akan diterapkan.

Contoh 1: Ganti File dengan Perintah 'sed'

Dalam skrip berikut, teks pencarian-dan-ganti akan diambil dari pengguna. Jika string pencarian ada di 'Sales.txt', maka akan diganti dengan string pengganti. Di sini, pencarian peka huruf besar-kecil akan dilakukan.

#!/bin/bash

# Tetapkan nama file
nama file='Penjualan.txt'

# Ambil string pencarian
Baca -P 'Masukkan string pencarian:'Cari

# Ambil string pengganti
Baca -P 'Masukkan string ganti:'mengganti

jika [[ $pencarian !='' && $ganti !='' ]];kemudian
sed -Saya 'S/$pencarian/$ganti/ ' $nama file
menjadi

Keluaran

Contoh 2: Ganti File dengan Perintah 'sed' dengan Bendera 'g' dan 'i'

Skrip berikut akan bekerja seperti contoh sebelumnya, tetapi string pencarian akan dicari secara global untuk flag 'g', dan pencarian case-insensitive akan dilakukan untuk flag 'i'.

#!/bin/bash

# Ambil string pencarian
Baca -P 'Masukkan string pencarian:'Cari

# Ambil string pengganti
Baca -P 'Masukkan string ganti:'mengganti

jika [[ $pencarian !='' && $ganti !='' ]];kemudian
sed -Saya 'S/$pencarian/$ganti/memberi' $1
menjadi

Keluaran

Contoh 3: Ganti File dengan Perintah 'sed' dan Pola Digit yang Cocok

Skrip berikut akan mencari semua konten numerik dalam file dan akan mengganti konten dengan menambahkan: '$' simbol di awal angka.

#!/bin/bash

# Periksa nilai argumen baris perintah ada atau tidak
jika [ $1 !='' ];kemudian
# Cari semua string yang berisi angka dan tambahkan $
sed -Saya 's/[0-9]{5}/$&/g' $1
menjadi

Keluaran

Ganti String dalam File dengan Perintah `awk`

NS ' awk ' perintah adalah cara lain untuk mengganti string dalam sebuah file, tetapi perintah ini tidak dapat memperbarui file asli secara langsung seperti ' tetapi memerintah.

Contoh 4: Ganti File dengan Perintah 'awk'

Skrip berikut akan menyimpan konten yang diperbarui di temp.txt file yang akan diganti namanya dengan file aslinya.

#!/bin/bash

# Periksa nilai argumen baris perintah ada atau tidak
jika [ $1 !='' ];kemudian
# Cari semua string berdasarkan tanggal
awk '{sub('02/06/2020','12/06/2020')}1' $1 >temp.txt&& mvtemp.txt$1
menjadi

Keluaran

Kesimpulan

Artikel ini menunjukkan cara menggunakan skrip bash untuk mengganti string tertentu dalam file. Tugas mengganti string dalam sebuah file seharusnya menjadi lebih mudah bagi Anda setelah mempraktikkan contoh di atas.