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}'