GNU/Linux >> Belajar Linux >  >> Linux

Temukan Nomor Baris Yang Berisi Pola Menggunakan Pembatas Regex Khusus?

Seperti pada contoh saya mencoba untuk mendapatkan nomor baris yang berisi pola. Pola saya berisi garis miring, jadi saya ingin menambahkan pembatas khusus.

Yang sederhana ini berfungsi:

sed -n '/file/=' temp.txt

Menggunakan pembatas untuk penggantian string juga berfungsi:

sed 's|file|gile|' temp.txt

tetapi ketika saya ingin menambahkan pembatas ke contoh pertama tidak:

sed -n '|file /etc|=' temp.txt

Saya tahu saya dapat menghindari garis miring tetapi saya lebih suka menambahkan pembatas khusus. Adakah yang tahu cara memperbaiki perintah saya?

Jawaban yang Diterima:

Stéphane memberi Anda sed solusi:

sed -n  '|file /etc|=' file 

Jika Anda terbuka untuk menggunakan alat lain, Anda juga dapat melakukannya

grep -n 'file /etc' file

Itu juga akan mencetak baris itu sendiri, untuk mendapatkan nomor barisnya sendiri coba:

grep -n 'file /etc' file | cut -d: -f 1

Atau, Anda dapat menggunakan perl :

perl -lne 'm|file /etc| && print $.' file 

Atau awk :

awk '$0 ~ "file /etc" {print NR}'

Linux
  1. sed - cara melakukan grup regex menggunakan sed

  2. Bagaimana cara memasukkan teks ke baris pertama file menggunakan sed?

  3. Bagaimana saya bisa menghitung jumlah folder di drive menggunakan Linux?

  1. Belajar menggunakan editor teks Sed

  2. Bagaimana cara mengetahui antarmuka mana yang saya gunakan untuk terhubung ke internet?

  3. Bagaimana cara menemukan nomor baris di Bash ketika terjadi kesalahan?

  1. Menggunakan kekuatan di baris perintah Linux

  2. Memanipulasi teks pada baris perintah dengan sed

  3. Cetak Baris Sebelumnya Setelah Pencocokan Pola Menggunakan Sed?