Saya ingin smb.conf
melihat dan hanya melihat baris yang tidak dikomentari.
Saya ingin smb.conf
melihat dan hanya melihat baris yang tidak dikomentari.
Jawaban:
grep "^[^#;]" smb.conf
Yang pertama ^
mengacu pada awal baris, jadi baris dengan komentar yang dimulai setelah karakter pertama tidak akan dikecualikan. [^#;]
berarti setiap karakter yang bukan #
atau ;
.
Dengan kata lain, ini melaporkan baris yang dimulai dengan karakter selain #
dan ;
. Ini tidak sama dengan melaporkan baris yang tidak dimulai dengan #
dan ;
(yang akan Anda gunakan grep -v '^[#;]'
) di dalamnya juga mengecualikan baris kosong , tapi itu mungkin lebih baik dalam hal ini karena saya ragu Anda peduli tentang baris kosong.
Jika Anda ingin mengabaikan karakter kosong utama, Anda dapat mengubahnya menjadi:
grep '^[[:blank:]]*[^[:blank:]#;]' smb.conf
atau
grep -vxE '[[:blank:]]*([#;].*)?' smb.conf
Atau
awk '$1 ~ /^[^;#]/' smb.conf
cat /etc/samba/smb.conf | grep ^[^#\;]
Tapi bagaimanapun juga Terima kasih
cat ...|
sintaks !. .2 Untuk mencambuk garis kosong DAN garis yang hanya berisi ruang, mungkin dengan komentar Anda bisa menggunakan ini:grep -v "^ *\(#.*\|\)$" < smb.conf
cat file | grep "blah"
impie menjalankan dua binari melalui fifo , sementara grep "blah" <file
melakukan hal yang persis sama dan mengikat file
secara alami ke grep STDIN
. [bash] kucing tidak berguna adalah subjek pencarian fitur lengkap melalui mesin pencari apa pun! -> blog.sanctum.geek.nz/useless-use-of-cat ... untuk sampel
Solusi Vim:
:v/^\s*[#\n]/p
Saya menemukan pertanyaan ini ketika mencoba menemukan solusi vim sendiri.
*
ke +
suka begitu:v/^\s+[#\n]/p
Pipa untuk menerima jawaban oliver nadj dapat dihilangkan dengan (dengan asumsi GNU grep
atau kompatibel):
grep -v "^\s*[#\;]\|^\s*$" <some_conf_file>
grep -v "^\s*[#;]" any.conf | grep -v "^\s*$"
itulah yang bekerja untuk saya. abaikan komentar atau baris kosong, bahkan spasi sebelum tanda pagar atau titik koma
Contoh-contoh ini mungkin bermanfaat bagi orang.
[user@host tmp]$ cat whitespacetest
# Line 1 is a comment with hash symbol as first char
# Line 2 is a comment with hash symbol as second char
# Line 3 is a comment with hash symbol as third char
# Line 4 is a comment with tab first, then hash
; Line 5 is a comment with tab first, then semicolon. Comment char is ;
; Line 6 is a comment with semicolon symbol as first char
[user@host tmp]$
Contoh grep pertama mengecualikan baris yang dimulai dengan jumlah spasi putih diikuti dengan simbol hash.
[user@host tmp]$ grep -v '^[[:space:]]*#' whitespacetest
; Line 5 is a comment with tab first, then semicolon. Comment char is ;
; Line 6 is a comment with semicolon symbol as first char
[user@host tmp]$
Yang kedua tidak termasuk baris yang dimulai dengan jumlah spasi putih diikuti dengan simbol hash atau titik koma.
[user@host tmp]$ grep -v '^[[:space:]]*[#;]' whitespacetest
[user@host tmp]$
Di sini saya mendapatkan yang lebih baik (dengan asumsi GNU grep
atau kompatibel):
grep -v '^[#;/%<]\|^\s*$' anyfile.conf
kecualikan untuk garis yang dimulai dengan #;/%<
tanda kurung siku dan filter kedua setelah pipa \s*$
untuk garis kosong.
<
atau /
digunakan untuk komentar? Saya tahu banyak format file conf di mana <
segalanya kecuali komentar. !
kadang-kadang digunakan seperti dalam file sumber daya X.
grep -v '^$\|^\s*#' temp
Yang ini jauh lebih baik, saya mendapatkannya dari https://stackoverflow.com/questions/17392869/how-to-print-a-file-excluding-comments-and-blank-lines-using-grep-sed
Ini mengasumsikan GNU grep
atau kompatibel.
;
sebagai komentar yang harus dihapus.
egrep -v "^#|^$" anyfile.txt
perintah ini adalah untuk mengambil semua informasi dalam file tidak termasuk komentar dan baris kosong.
;
Ini akan menampilkan Anda file tanpa baris yang dimulai dengan #
:
grep -v "^#" filename
;
.
testparm
lakukan ini dengan lebih baik karena ini juga menampilkan nilai default.