grep을 사용하여 줄의 마지막 항목 찾기

grep을 사용하여 줄의 마지막 항목 찾기

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

관련 정보