grep을 사용하여 라인에서 마지막 항목 찾기


13

특정 패턴에 grep을 사용하여 마지막 단어 또는 구문을 사용하려고합니다. 이 예에서는 마지막 쉼표에서 줄 끝까지입니다.

Blah,3,33,56,5,Foo 30,,,,,,,3,Great Value

따라서 해당 라인에 대해 원하는 출력은 "Great Value"가됩니다. 모든 줄은 길이가 다르지만 항상 마지막 단어 앞에 하나의 쉼표가 있습니다.

기본적으로 마지막 쉼표에서 줄 끝까지 간단히 출력하고 싶습니다. 감사합니다!


9
awk -F, '{print $NF}'? 사용을 고려 했습니까 ?
steeldriver

라인에서 마지막 항목을 얻는 것은 쉬운 작업이지만 해당 라인을 어떻게 식별해야합니까? 내 말은, 어떻게 명령이나 스크립트가 줄을보고 "그래, 그게 다야"라고 말할 수 있니? 그 선을 식별하는 패턴은 무엇입니까?
Sergiy Kolodyazhnyy

5
grep이 작업을위한 도구가 아닙니다.
Kusalananda

답변:


27

여기:

grep -o '[^,]\+$'
  • [^,]\+,줄 끝에 없는 하나 이상의 문자와 일치 합니다 ( $)

  • -o 일치하는 부분 만 인쇄합니다

예:

% grep -o '[^,]\+$' <<<'Blah,3,33,56,5,Foo 30,,,,,,,3,Great Value'
Great Value

매력처럼 일했다! "."조합을 사용하려고했습니다. 다른 표현들도 있지만 훨씬 더 잘 작동합니다.
reversebottle

흠, 나는 사용했을 것입니다-Eo+
Baldrickk

@Baldrickk -E는 ERE를 가능하게합니다.
heemayl

@heemayl 예, 이유를 알고 있습니다. 좀 더 일반적인 정규 표현식이기 때문에 사용하는 경향이 있습니다
Baldrickk

15

항상 awk해결책 을보고 싶어서 여기에 있습니다 (적절한 해결책을 피하십시오!) :

% awk -F, '{print $NF}'  <<<'Blah,3,33,56,5,Foo 30,,,,,,,3,Great Value'
Great Value

3
이것이 정답이어야합니다. 그렙을 사용할 수 있지만 망치로 나사를 조일 수도 있습니다.
wilsotc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.