Grep smb.conf
ve sadece yorumlanmamış satırları görmek istiyorum .
Grep smb.conf
ve sadece yorumlanmamış satırları görmek istiyorum .
Yanıtlar:
grep "^[^#;]" smb.conf
Birincisi ^
satırın başlangıcını belirtir, bu nedenle ilk karakterden sonra başlayan yorumları olan satırlar dışlanmayacaktır. veya [^#;]
olmayan herhangi bir karakter anlamına gelir .#
;
Başka bir deyişle, #
ve dışında herhangi bir karakterle başlayan satırları rapor eder ;
. O ile başlamayın hatları raporlama aynı değil #
ve ;
(Kullanmak istediğiniz en fazla grep -v '^[#;]'
da dışlar ki) boş satırları, ama boş hatları umurumda şüphe olarak bu durumda muhtemelen tercih edilir.
Baştaki boş karakterleri görmezden gelmek isterseniz, onu şu şekilde değiştirebilirsiniz:
grep '^[[:blank:]]*[^[:blank:]#;]' smb.conf
veya
grep -vxE '[[:blank:]]*([#;].*)?' smb.conf
Veya
awk '$1 ~ /^[^;#]/' smb.conf
cat /etc/samba/smb.conf | grep ^[^#\;]
Ama yine de teşekkürler
cat ...|
sözdizimi kullanmaktan kaçının ! .2 Boş satırları kırbaçlamak için ve sadece boşluk içeren satırlar, belki de U yorumlarıyla grep -v "^ *\(#.*\|\)$" < smb.conf
cat file | grep "blah"
implie bir içinden iki ikilileri çalışan fifo'ya ederken, grep "blah" <file
tam olarak aynı şeyi ve bağlama file
naturaly grep giden tarihiyle STDIN
. [bash] işe yaramaz kedi herhangi bir arama motoru aracılığıyla arama tam özellikli bir konudur! -> blog.sanctum.geek.nz/useless-use-of-cat ... numune için
Vim çözümü:
:v/^\s*[#\n]/p
Vim çözümünü kendim bulmaya çalışırken bu soruya rastladım.
*
için +
bu kadar mi:v/^\s+[#\n]/p
Oliver nadj'ın cevabında aşınacak olan boru (GNU grep
veya uyumlu olduğu varsayılarak) elimine edilebilir :
grep -v "^\s*[#\;]\|^\s*$" <some_conf_file>
grep -v "^\s*[#;]" any.conf | grep -v "^\s*$"
bu benim için işe yarıyor. Yorumlanmış veya boş satırları yoksay, karma işareti veya noktalı virgül öncesi boşluk bile olsa
Bu örnekler insanlara faydalı olabilir.
[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]$
İlk grep örneği, herhangi bir miktarda boşlukla başlayan ve ardından bir karma sembolüyle başlayan çizgileri hariç tutar.
[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]$
İkincisi, herhangi bir miktarda boşlukla başlayan ve ardından bir karma sembolü veya noktalı virgül ile başlayan çizgileri hariç tutar.
[user@host tmp]$ grep -v '^[[:space:]]*[#;]' whitespacetest
[user@host tmp]$
İşte daha iyisini anladım (GNU grep
veya uyumlu olduğu varsayılarak ):
grep -v '^[#;/%<]\|^\s*$' anyfile.conf
#;/%<
Köşeli parantez içinde başlayan çizgiler ve borudan sonraki ikinci filtre \s*$
boş çizgiler içindir.
<
veya /
yorumlar için kullanılan? <
Bir yorumdan başka her şeyin olduğu bir çok conf dosya formatı biliyorum . !
bazen X kaynak dosyalarında olduğu gibi kullanılır.
grep -v '^$\|^\s*#' temp
Bu çok daha iyi, https://stackoverflow.com/questions/17392869/how-to-print-a-file-excluding-comments-and-blank-lines-using-grep-sed
GNU grep
veya uyumlu olduğunu varsayar .
;
, kaldırılması gereken bir yorum olarak başlayan satırları da dikkate alır .
egrep -v "^#|^$" anyfile.txt
Bu komut, yorumlar ve boş satırlar dışındaki tüm bilgileri dosyaya eklemektir.
;
Bu işlem, bu satırlarla başlayan dosyayı göstermelidir #
:
grep -v "^#" filename
;
.
testparm
Bunu, bu varsayılan değerleri de gösterdiğinden daha iyisini yapın.