텍스트 파일에서 특정 정수를 검색하는 방법

텍스트 파일에서 특정 정수를 검색하는 방법

특정 정수의 모든 인스턴스에 대해 텍스트 파일(소스 코드)을 검색하는 쉬운 방법이 있습니까? 이는 하위 문자열로 정수를 포함하는 더 큰 숫자에 대해 트리거되어서는 안 되지만, 두 가지가 모두 포함될 수 있으므로 그러한 행을 단순히 제외할 수는 없습니다.

"6"을 검색하는 중...

int a=6; // found
int b=16; // not found (despite the '6' in '16')
int c=6, d=16; // found

정말 명령줄 방법을 찾고 있는데 혹시 있는지도 궁금합니다.무료 소프트웨어GUI 유형 편집기가 이를 수행할 수 있습니다.

답변1

grep -E '\b6\b'

\b"단어 경계"입니다

-w편집: @nobar를 올바른 방향으로 지정한 후 그는 매뉴얼 페이지에서 바로가기 옵션(word-regexp)을 찾거나 지적했습니다. 이는 위의 내용을 다음과 같이 단순화합니다.

grep -w 6

자주 사용하는 경우 다음과 같은 기능을 사용할 수 있습니다.

wgrp(){ grep -w "$1" "$2"; }

참고(@glenn-jackman): 여기서 참조하지 않으면 "$2"해당 함수를 파이프라인 필터로 사용할 수 있습니다. 하지만 그렇습니다. 공백이 있는 파일 이름에서는 작동하지 않습니다.

@Gilles의 또 다른 훌륭한 답변을 읽은 후 이제 추천합니다.

igrp(){ grep -E "(^|[^0-9])$1($|[^0-9])" "$2"; }

답변2

정규식을 사용하여 특정 정수를 검색할 수 있습니다. 데이터 앞의 숫자나 숫자가 아닌 문자를 검색합니다. 숫자 뒤도 검색합니다.

grep -e '^6$' -e '^6[^0-9]' -e '[^0-9]6$' -e '[^0-9]6[^0-9]'   # BRE syntax
grep -E '(^|[^0-9])6($|[^0-9])'                                # ERE syntax

다른 답변에서 제안된 전체 단어 검색은 이와 같은 히트를 놓칠 것입니다 foo6bar. (이것은 귀하의 사용 사례에 문제가 아닐 수도 있지만 귀하가 요청한 것입니다.)

어느 정도 심각한 텍스트 편집기나 뷰어(예 less: )에는 정규식 검색 기능이 있습니다. 사용되는 정규식 구문을 이해하려면 설명서를 확인하세요.

답변3

나는 이것이 암묵적인 요구 사항이 아니라고 생각합니다. 나의 정규 프로그래밍 편집자,퓨마이는 전체 단어만 일치 옵션을 사용하는 찾기 대화 상자를 통해 지원됩니다. 나는 다른 많은 편집자들도 이것을 가지고 있다고 확신합니다. 비록 현재는 분명히 Pluma의 조상은 아니지만,편집자.

여기에 이미지 설명을 입력하세요

관련 정보