GNU/Linux >> Belajar Linux >  >> Ubuntu

Gunakan Perintah SED untuk Menemukan dan Mengganti String di File - Bagaimana cara melakukan tugas ini di Ubuntu?

Sed adalah singkatan dari editor aliran. Itu membaca file yang diberikan, memodifikasi input seperti yang ditentukan oleh daftar perintah sed.

Secara default, input ditulis ke layar, tetapi Anda dapat memaksa untuk memperbarui file.

Sed (Stream EDitor) Perintah Linux digunakan untuk mencari, menemukan dan mengganti, atau menyisipkan dan menghapus kata dan baris dalam file teks.

Kasus penggunaan paling umum dari perintah Sed adalah menemukan dan mengganti string dalam file. Saat menggunakan perintah Sed, Anda dapat mengedit file tanpa membukanya.

Di sini, di LinuxAPT, sebagai bagian dari Layanan Manajemen Server kami, kami secara teratur membantu Pelanggan kami untuk melakukan kueri terkait Server Linux.

Dalam konteks ini, kita akan melihat bagaimana menggunakan perintah Sed untuk menemukan dan mengganti string dalam file di sistem Ubuntu 20.04.


Temukan dan Ganti di Ubuntu

Secara default, Sed diinstal di sebagian besar distribusi Linux. Anda dapat memverifikasi instalasi Sed pada sistem Linux Anda dengan menjalankan:

$ sed --v

Sintaks dasar menggunakan perintah Sed untuk menemukan dan mengganti teks adalah:

$ sed -i 's/Search_pattern/Replacement_pattern/g' FILE

Dimana:

-i:Opsi ini membuat perintah Sed mengedit file di tempatnya alih-alih menulis output ke output standar.

s:Itu singkatan dari pengganti.

/ /:Karakter pembatas.

g:Ini adalah bendera pengganti Global.

FILE:File yang ingin Anda manipulasi dengan perintah Sed.


Sangat disarankan untuk menempatkan pola pencarian, pola penggantian, dan argumen lainnya dalam tanda kutip.

Sebagai contoh, berikut adalah file teks yang digunakan untuk demonstrasi:

567 Test test test
test /bin/zsh linuxapt.com testbar 789

Untuk mengganti semua kata 'test' dengan kata 'linux', jalankan perintah berikut:

$ sed -i 's/test/linux/g' test.txt

Jika Anda tidak menggunakan flag g, hanya kemunculan pertama dari pola pencarian di setiap baris yang diganti:

$ sed -i 's/test/linux/' test.txt

Untuk membuat pencocokan huruf besar-kecil pola pencarian tidak sensitif, mari gunakan tanda I:

$ sed -i 's/test/linux/gI' test.txt

Di dunia Linux, kita akan menemukan banyak kasus penggunaan yang memiliki karakter pembatas dalam file teks.

Kita harus menggunakan garis miring terbalik \ untuk memecahkan karakter pembatas.

Misalnya, untuk mengganti /bin/zsh dengan /usr/bin/bash, jalankan:

$ sed -i 's/\/bin\/zsh/\/usr\/bin\/bash/g' test.txt


Temukan dan Ganti Rekursif

Dalam banyak kasus, Anda ingin mencari direktori secara rekursif untuk file yang memiliki string tertentu dan mengganti string tersebut di semua file.

Misalnya, perintah berikut akan mencari dan mengganti string 'apt' dengan 'road' di semua file di direktori saat ini.

$ find . -type f -exec sed -i 's/apt/road/g' {} +

Jika nama file mengandung karakter spasi, mari gunakan opsi -print0:

$ find . -type f -print0 | xargs -0 sed -i 's/way/road/g'

Untuk mencari dan mengganti string hanya pada file yang memiliki ekstensi tertentu, jalankan:

$ find . -type f -name "*.java" -print0 | xargs -0 sed -i 's/apt/road/g'



Ubuntu
  1. Cara Menggunakan Perintah Shutdown Linux di Ubuntu 18.04 dan CentOS 7

  2. Cara Menggunakan Perintah Grep untuk Menemukan Teks di File

  3. Cara mengganti string dalam banyak file di baris perintah linux

  1. Tambah dan Hapus Pengguna di Ubuntu 20.04 - Bagaimana cara melakukan tugas ini?

  2. Daftar Paket yang Diinstal di Ubuntu 20.04 - Bagaimana cara melakukan tugas ini?

  3. Bagaimana Cara Menggunakan Sed Untuk Mengganti String Multi-baris?

  1. Cara Menggunakan sed untuk Menemukan dan Mengganti String di File

  2. Cara Menginstal dan Menggunakan Perintah Curl di Ubuntu 20.04

  3. Cara menggunakan perintah string di Ubuntu