Я хочу привітатись 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
зробіть це краще, оскільки для цього також відображаються значення за замовчуванням.