grepを使用して行の最後の項目を検索する

grepを使用して行の最後の項目を検索する

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

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

したがって、この行に必要な出力は「素晴らしい値」になります。すべての行の長さも異なりますが、最後の単語の前には常にカンマがあります。

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

答え1

ここで:

grep -o '[^,]\+$'
  • [^,]\+,行の末尾にない1つ以上の文字の一致($

  • -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

関連情報