web-dev-qa-db-ja.com

grepを使用して行の最後の項目を見つける

特定のパターンのgrepを使用して、最後の単語または語句を取得しようとしています。この例では、最後のコンマから行末までです。

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

したがって、その行に必要な出力は「グレートバリュー」になります。すべての行の長さも異なりますが、常に最後の単語の前に単一のコンマがあります。

基本的には、最後のカンマから行末まで出力したいだけです。ありがとうございました!

13
reversebottle

ここに:

grep -o '[^,]\+$'
  • [^,]\+は、行末の,ではない1つ以上の文字と一致します($

  • -oは、一致した部分のみを印刷します

例:

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

常にawkソリューションを見たいので、ここに(適切なソリューションに賛成です!):

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