次のような複数行を含むファイルがあります。
ブランド、モデル、インチ、価格
dell xps 13 9000
macbook pro 13 13000
asus zenbook 13 10500
価格が10,000を超える行を削除したいです。 grepを使用できますか?
ベストアンサー1
次のコマンドを使用して、価格が10000を超える行を取得できます。
$ grep -E '.* [0]*[1-9][0-9]{4,}$' file.txt
macbook pro 13 13000
asus zenbook 13 10500
この行を削除するには、以下を追加します-v
。
$ grep -vE '.* [0]*[1-9][0-9]{4,}$' file.txt
dell xps 13 9000
.*
価格を含む最後の列の前のすべての文字と一致します。[1-9]
価格の最初の数字と一致[0-9]{4,}$
最初の数字の後に4つ以上の数字が一致するため、合計5つの数字があります。つまり10000以上を意味します。