grepを使用してファイルから複数行を削除する

grepを使用してファイルから複数行を削除する

次のような複数行を含むファイルがあります。

ブランド、モデル、インチ、価格

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以上を意味します。

おすすめ記事