반응형
컨텍스트 줄에 grep을 사용할 때“-”줄 구분 기호를 제거하려면 어떻게해야합니까?
"nmse_gain_constant"패턴을 포함하는 모든 행을 따르는 단일 행을 추출하려는 compare.txt라는 텍스트 파일이 있습니다. 다음 명령은 나를 닫습니다.
grep -A 1 nmse_gain_constant compare.txt | grep -v nmse_gain_constant
그러나 여기에는 원하는 텍스트의 모든 줄 사이에 구분 기호 "-"줄이 포함됩니다. "-"줄을 제거하는 방법에 대한 쉬운 아이디어가 있습니까?
여기에 몇 가지 예제 텍스트를 제공하지만 "-"문자는이 웹 게시물에서 제어 문자로 잘못 해석되어 표시되는 내용이 올바르지 않습니다.
나는 이것을한다:
grep ... | grep -v -- "^--$"
그러나 이것도 작동합니다!
grep --no-group-separator ...
그리고 그것은 "-"또는 심지어 빈 줄을 뱉지 않습니다.
grep : "--group-separator"의 문서화되지 않은 매개 변수가 있으며 이는 기본값 "-"을 대체합니다. ""로 설정하여 이중 대시를 제거 할 수 있습니다. 그래도 여전히 빈 줄이 표시됩니다. 나는 같은 문제가 있었고 grep의 소스 코드를 읽음 으로써이 매개 변수를 발견했습니다.
글쎄, A
기본적으로 스위치는 해당 문자를 추가하므로 미스터리가 아닙니다.
man grep
상태 :
-A NUM
Places a line containing a group separator (--) between
contiguous groups of matches. With the -o or --only-matching
option, this has no effect and a warning is given.
그러나 간단한 sed를 사용하여 결과를 정리할 수 있습니다.
yourgrep | sed '/^--$/d'
AWK를 사용하는 경우 너무 많은 greps에 파이프하거나 다른 도구 (예 : sed)를 사용할 필요가 없습니다.
awk '/nmse_gain_constant/{getline;print }' compare.txt
한 가지 해결책은 다음과 같습니다.
grep -A 1 nmse_gain_constant compare.txt | grep -v nmse_gain_constant | grep -v "\-\-"
반응형
'Nice programing' 카테고리의 다른 글
iFrame 내에서 메인 페이지를 다시로드하는 방법 (0) | 2020.12.28 |
---|---|
respondsToSelector를 사용할 때 " '…'는 더 이상 사용되지 않음"표시 안 함 (0) | 2020.12.28 |
Scala 케이스 클래스의 이름을 어떻게 쉽게 얻을 수 있습니까? (0) | 2020.12.28 |
데이터베이스 설계에서 "n : m"및 "1 : n"의 의미 (0) | 2020.12.28 |
JavaScript SDK의 FB.login 메서드에서 액세스 토큰을 얻는 방법 (0) | 2020.12.28 |