Я хочу привітатись smb.confі бачити лише рядки, котрі не коментуються.
Я хочу привітатись smb.confі бачити лише рядки, котрі не коментуються.
Відповіді:
grep "^[^#;]" smb.conf
Перший ^стосується початку рядка, тому рядки з коментарями, що починаються після першого символу, не будуть виключені. [^#;]означає будь-який символ, якого немає #або є ;.
Іншими словами, він повідомляє рядки, які починаються з будь-якого символу, крім #і ;. Це не те саме, що повідомляти про рядки, які не починаються з ( #і ;для яких ви використовуєте grep -v '^[#;]'), оскільки це також виключає порожні рядки, але це, мабуть, краще в цьому випадку, оскільки я сумніваюся, що ви дбаєте про порожні рядки.
Якщо ви хочете ігнорувати провідні символи, ви можете змінити його на:
grep '^[[:blank:]]*[^[:blank:]#;]' smb.conf
або
grep -vxE '[[:blank:]]*([#;].*)?' smb.conf
Або
awk '$1 ~ /^[^;#]/' smb.conf
cat /etc/samba/smb.conf | grep ^[^#\;]Але все одно дякую
cat ...| синтаксису !. .2 Для збивання порожніх рядків І рядків, що містять лише пробіл, можливо, з коментарями U може використовувати це:grep -v "^ *\(#.*\|\)$" < smb.conf
cat file | grep "blah"implie запуск двох довічних файлів через ФІФО , а grep "blah" <fileробити те ж саме і зв'язати file naturaly з Grep х років STDIN. [bash] непотрібна кішка - це повнофункціональний предмет пошуку через будь-яку пошукову систему! -> blog.sanctum.geek.nz/useless-use-of-cat ... для зразка
Рішення Vim:
:v/^\s*[#\n]/p
Я наткнувся на це питання, намагаючись сам знайти рішення vim.
*щоб +виглядати приблизно так:v/^\s+[#\n]/p
Труба, яка має відповісти на відповідь Олівера Наджа, може бути усунена (припускаючи GNU grepабо сумісну):
grep -v "^\s*[#\;]\|^\s*$" <some_conf_file>
grep -v "^\s*[#;]" any.conf | grep -v "^\s*$"
саме це працює для мене. ігноруйте коментовані чи порожні рядки, навіть пробіл перед позначкою хешу чи крапкою з комою
Ці приклади можуть бути корисними людям.
[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]$
Перший приклад грепінгу виключає рядки, що починаються з будь-якої кількості пробілів, а потім хеш-символом.
[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]$
Другий виключає рядки, що починаються з будь-якої кількості пробілів, а потім хеш-символом або крапкою з комою.
[user@host tmp]$ grep -v '^[[:space:]]*[#;]' whitespacetest
[user@host tmp]$
Тут я отримав кращий (припустимо, GNU grepабо сумісний):
grep -v '^[#;/%<]\|^\s*$' anyfile.conf
виключити для ліній, які починаються з #;/%<квадратних дужок, а другий фільтр після труби - \s*$для порожніх рядків.
<або /використовується для коментарів? Я знаю багато форматів файлів конф, де <є все, крім коментаря. !іноді використовується як у X-файлах ресурсів.
grep -v '^$\|^\s*#' temp
Це набагато краще, я отримав це з https://stackoverflow.com/questions/17392869/how-to-print-a-file-excluding-comments-and-blank-lines-using-grep-sed
Він передбачає GNU grepабо сумісний.
;коментаря, який слід видалити.
egrep -v "^#|^$" anyfile.txt
ця команда полягає в зібранні всієї інформації у файлі, виключаючи коментарі та порожні рядки.
;
Це повинно відобразити файл без тих рядків, які починаються з #:
grep -v "^#" filename
;.
testparmзробіть це краще, оскільки для цього також відображаються значення за замовчуванням.