smb.conf
grep 하고 주석 처리되지 않은 줄만 보고 싶습니다 .
답변1
grep "^[^#;]" smb.conf
첫 번째는 ^
줄의 시작을 의미하므로 첫 번째 문자 이후 주석으로 시작하는 줄은 제외되지 않습니다. 또는 이 아닌 모든 문자를 [^#;]
나타냅니다 .#
;
즉 , 및 이외의 문자로 시작하는 #
행을 보고합니다 ;
. #
및 ;
(사용하는) 로 시작하지 않는 보고 라인과는 다릅니다 grep -v '^[#;]'
.비어 있는좋습니다. 하지만 이 경우에는 빈 줄에 관심이 있는지 의심스럽기 때문에 아마도 더 나은 옵션일 것입니다.
선행 공백 문자를 무시하려면 다음과 같이 변경할 수 있습니다.
grep '^[[:blank:]]*[^[:blank:]#;]' smb.conf
또는
grep -vxE '[[:blank:]]*([#;].*)?' smb.conf
또는
awk '$1 ~ /^[^;#]/' smb.conf
답변2
Wim 솔루션:
:v/^\s*[#\n]/p
나는 vim 솔루션을 직접 찾으려고 노력하면서 이 문제를 우연히 발견했습니다.
답변3
Oliver nadj의 답변에 있는 grep 파이프는 다음을 통해 제거할 수 있습니다(GNU grep
또는 호환 가능하다고 가정).
grep -v "^\s*[#\;]\|^\s*$" <some_conf_file>
답변4
grep -v "^\s*[#;]" any.conf | grep -v "^\s*$"
이것은 나에게 효과적입니다. 주석이나 빈 줄을 무시하고 해시 표시나 세미콜론 앞의 공백도 무시합니다.