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