GNU/Linux >> Belajar Linux >  >> Linux

Menggunakan beberapa pola sekaligus dengan perintah Sed

Ini pertanyaan dari salah satu pembaca reguler kami, Tuan Manish. Pertanyaannya adalah, bagaimana cara menggunakan beberapa pola sekaligus dengan perintah Sed di Linux untuk menghapus atau mengganti operasi.

Pertimbangkan file contoh yang berisi teks berikut. (Saya menggunakan contoh yang sama yang diminta pembaca).

SLURM_CLUSTER_NAME = test
SLURM_JOB_ID = 525595
SLURM_JOB_NAME = test1
SLURM_JOB_USER = test
SLURM_JOB_NODELIST = cn01
SLURM_JOB_UID = 5016
SLURM_JOB_PARTITION = standard-low
SLURM_SUBMIT_DIR = /home/test
SLURM_TASK_PID = 108983
SLURM_CPUS_ON_NODE = 1
SLURM_NTASKS = 
SLURM_TASK_PID = 108983

Sekarang pembaca menginginkan satu Sed perintah untuk menghapus baris yang cocok dengan pola – SLURM_JOB_USER &SLURM_SUBMIT_DIR dari file. Jadi bagaimana Anda melakukannya? Ini dia.

Hapus pola pencocokan garis dan cetak dengan Sed

Sintaks:

$ set '/PATTERN/d' filename
$ sed '/SLURM_JOB_USER/d' test.txt

Perintah di atas akan menghapus baris yang cocok dengan pola ‘SLURM_JOB_USER ' dan mencetak output ke stdout.

Hapus pola pencocokan baris dan ubah file dengan Sed

Sintaks:

$ set -i '/PATTERN/d' filename

'-i' opsi akan memodifikasi file.

$ sed -i '/SLURM_JOB_USER/d' test.txt

Menggunakan beberapa pola sekaligus dengan Sed

Bagaimana jika Anda ingin menghapus beberapa baris yang cocok dengan beberapa pola dengan satu perintah Sed? Ini dia,

Sintaks:

$ set -i '/PATTERN1/d;/PATTERN2/d' filename
$  sed -i '/SLURM_JOB_USER/d;/SLURM_SUBMIT_DIR/d' test.txt

Perintah di atas akan menghapus baris yang berisi SLURM_JOB_USER dan SLURM_SUBMIT_DIR pola dan simpan file. Perhatikan titik koma (;) untuk memasukkan beberapa pola dalam satu perintah.

Ganti pola dan cetak dengan Sed

Sintaks:

$ sed 's/PATTERN/REPLACE_STRING/g' test.txt
$ sed 's/SLURM_JOB_USER/REPLACE1/g' test.txt

'g' mewakili global  – ini menggantikan semua contoh pola di setiap baris, bukan hanya yang pertama (yang merupakan perilaku default)

Ganti pola dan ubah file dengan Sed

$ sed -i 's/SLURM_JOB_USER/REPLACE1/g' test.txt

Opsi '-i' akan memodifikasi file.

Gunakan beberapa pola sekaligus dengan Sed

$ sed -i 's/SLURM_JOB_USER/REPLACE1/g;s/SLURM_SUBMIT_DIR/REPLACE2/g' test.txt

Cari titik koma(;) untuk menambahkan lebih banyak pola dalam satu perintah.

Suka? Beri tahu kami jika Anda memiliki pertanyaan di komentar di bawah dan kami akan mencoba membahasnya di sini.

Referensi


Linux
  1. Memanipulasi teks pada baris perintah dengan sed

  2. Menggunakan Sed Dengan Karakter Khusus?

  3. Simpan File Setelah Menggunakan Perintah Sed?

  1. Cara Mengganti Nama Banyak File Sekaligus di Linux

  2. ganti teks dengan panjang yang sama menggunakan sed

  3. Menggunakan sed untuk membagi string dengan pembatas

  1. Bagaimana Menjalankan Grep Dengan Banyak Dan Pola?

  2. Menggunakan –exclude Dengan Perintah Du?

  3. Mencari banyak pola (kata) dengan ack?