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