주석 줄 없이 구성 파일을 시각화하는 다음 작은 스크립트가 있습니다.
cat $1 | grep -Ev '[:blank]*#|^[:blank]*$' | pygmentize -g
하지만 /* */가 있는 일부 파일에는 여전히 일부 주석이 표시됩니다.
/* */ 를 포함한 모든 주석을 제거하여 파일을 시각화하려면 어떻게 해야 합니까? 나는 한 줄씩 bash 스크립트를 작성하여 이러한 주석의 열기 및 닫기를 검색하려고 생각하고 있습니다. 하지만 내 생각에는 이것이 더 나은 방법이 될 것 같습니다.
내가 본 모든 옵션(예:http://bit.ly/1BsdcDI)는 이러한 종류의 의견을 처리하지 않습니다.
이를 위해 이미 만들어진 도구나 스크립트가 있습니까?
도움을 주셔서 감사합니다.
편집하다
위에서 언급했듯이 저는 구체적으로 구성 파일을 목표로 삼고 있습니다. 따라서 제외 규칙은 다음과 같습니다.
- '#', ';'로 시작하는 모든 줄 또는 '//'
- 시작 /*부터 */까지의 모든 행
- 줄 시작 부분에 /*가 없거나(즉, /* 앞에 유효한 코드가 있음) 줄 끝 앞에 */가 있는(즉, */ 뒤에 유효한 코드가 있음) 줄을 제거하지 마세요.
해결책:
@cusco의 답변과 @EdMorton의 코드를 바탕으로 원하는 작업을 수행하기 위해 이 bash 스크립트를 만들었습니다.
#!/bin/bash
[ $# -eq 2 ] && arg="$1" || arg=""
eval file="\$$#"
sed 's/a/aA/g;s/__/aB/g;s/#/aC/g' "$file" |
gcc -P -E $arg - |
sed 's/aC/#/g;s/aB/__/g;s/aA/a/g' |
grep -Ev '^[:blank]*#|^[:blank]*$' |
grep -Ev '^[:blank]*\;|^[:blank]*$' |
pygmentize -g
답변1
확인하다https://stackoverflow.com/questions/13061785/remove-multi-line-comments
다음 스크립트가 있습니다
[ $# -eq 2 ] && arg="$1" || arg=""
eval file="\$$#"
sed 's/a/aA/g;s/__/aB/g;s/#/aC/g' "$file" |
gcc -P -E $arg - |
sed 's/aC/#/g;s/aB/__/g;s/aA/a/g'