GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Cara Grep Garis Yang Tidak Dimulai Dengan "#" Atau ";"?

Saya ingin grep smb.conf dan hanya melihat baris yang tidak dikomentari.

Jawaban yang Diterima:

grep "^[^#;]" smb.conf

^ pertama mengacu pada awal baris, jadi baris dengan komentar yang dimulai setelah karakter pertama tidak akan dikecualikan. [^#;] berarti karakter apa pun yang bukan # atau ; .

Dengan kata lain, ini melaporkan baris yang dimulai dengan karakter apa pun selain # dan ; . Ini tidak sama dengan melaporkan baris yang tidak dimulai dengan # dan ; (untuk itu Anda akan menggunakan grep -v '^[#;]' ) yang juga mengecualikan kosong baris, tapi itu mungkin lebih baik dalam kasus ini karena saya ragu Anda peduli dengan baris kosong.

Jika Anda ingin mengabaikan karakter kosong di depan, Anda dapat mengubahnya menjadi:

grep '^[[:blank:]]*[^[:blank:]#;]' smb.conf

atau

grep -vxE '[[:blank:]]*([#;].*)?' smb.conf

Atau

awk '$1 ~ /^[^;#]/' smb.conf

Linux
  1. Bagaimana Menjalankan Grep Dengan Banyak Dan Pola?

  2. Bagaimana Cara Gzip Hanya Jika Thesqldump Tidak Error?

  3. Bagaimana Cara Mendapatkan Tty Di Bash Yang Sedang Berjalan?

  1. Linux – Ldd Tidak Menemukan Path, Bagaimana Cara Menambahkannya?

  2. Bagaimana Menggunakan Grep Untuk Mencari Pola Yang Dimulai Dengan Tanda hubung (-)?

  3. Cara mencari halaman manual Linux (mis. Dengan grep)

  1. Bagaimana Linux menangani skrip shell?

  2. Cara grep baris yang memiliki lebih dari jumlah karakter khusus tertentu

  3. Garis grep dimulai dengan 1, tetapi bukan 10, 11, 100 dll