![grep을 사용하여 줄의 마지막 항목 찾기](https://linux55.com/image/103966/grep%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EC%A4%84%EC%9D%98%20%EB%A7%88%EC%A7%80%EB%A7%89%20%ED%95%AD%EB%AA%A9%20%EC%B0%BE%EA%B8%B0.png)
grep을 사용하여 특정 패턴의 마지막 단어나 문구를 얻으려고 합니다. 이 예에서는 마지막 쉼표부터 줄 끝까지입니다.
Blah,3,33,56,5,Foo 30,,,,,,,3,Great Value
따라서 이 행에 대해 원하는 출력은 "훌륭한 가치"가 됩니다. 모든 줄의 길이도 다르지만 마지막 단어 앞에는 항상 쉼표가 있습니다.
기본적으로 마지막 쉼표부터 줄 끝까지만 출력하고 싶습니다. 감사합니다!
답변1
여기:
grep -o '[^,]\+$'
[^,]\+
,
줄 끝에 있지 않은 하나 이상의 문자 일치 ($
)-o
일치하는 부분만 인쇄
예:
% grep -o '[^,]\+$' <<<'Blah,3,33,56,5,Foo 30,,,,,,,3,Great Value'
Great Value
답변2
항상 해결책을 보고 싶어하므로 awk
다음과 같습니다(올바른 해결책을 추천합니다!).
% awk -F, '{print $NF}' <<<'Blah,3,33,56,5,Foo 30,,,,,,,3,Great Value'
Great Value
답변3
어쩌면 이것은 당신에게 원하는 결과를 줄 것입니다
주문하다:
#!/bin/bash
echo "Blah,3,33,56,5,Foo 30,,,,,,,3,Great Value" | rev | awk -F',' '{ print $1 }' | rev
산출:
Great Value
이 사이트에서 테스트해보세요:https://rextester.com/KNMI75463