()로 끝나는 단어를 찾고 싶어요...grep을 사용하세요

()로 끝나는 단어를 찾고 싶어요...grep을 사용하세요

()로 끝나는 단어를 찾고 싶어요...리눅스에서 grep 명령을 사용해서요.

grep file_name_where_i_want_to_search "*()"

그런 것....하지만 작동하지 않아요

답변1

$ cat <<EOF > test
foo bar
foo bar() baz
foo.bar() baz
foo bar baz()
foobarbaz() foo bar()baz
EOF
$ grep -o '\w\+()' test
bar()
bar()
baz()
foobarbaz()
bar()
  • -o"일치하는 부분만 인쇄", 즉 전체 라인이 아닌 인쇄를 의미합니다.
  • \w"단어 내의 문자"를 의미합니다.
  • \+"이전 엔터티가 한 번 이상"을 의미합니다.

즉, grep -o '\w\+()'"()가 뒤따르는 하나 이상의 단어 문자로 구성된 모든 항목을 인쇄합니다"를 의미합니다.

이는 여전히 bar()의 부분 과 일치합니다 bar()baz. 괄호가 실제로 단어를 끝내고 bar()"()로 끝나는 단어"가 된다고 주장할 수도 있습니다. 어쨌든 실제 사용 사례에서는 이것이 문제가 되지 않는다고 가정합니다.

답변2

()를 이렇게 탈출하세요. 이것이 줄의 끝에 있으면 정규식(egrep)을 사용해야 합니다.

egrep file_name_where_i_want_to_search ".*\(\)$"

관련 정보