年の範囲が 1965-1996 である grep または egrep を確認してください。

年の範囲が 1965-1996 である grep または egrep を確認してください。

特定の日付に動作するgrepがありますが、私の脳にそれを最大限に活用させることはできません。

grep 19[6-9][5-6]$ filename

一部は正確にキャプチャしましたが、1965年から1996年のすべての年をキャプチャしたいと思います。

これは現在の解決策ですが、実際には1行を探していますが、これまでに得たものは次のとおりです。

grep 196[5-9]$ filename
grep 197[0-9]$ filename
grep 198[0-9]$ filename
grep 199[0-6]$ filename

可能であれば、より良い短いものをお探しですか?

ベストアンサー1

日付範囲と正規表現は一緒にうまく機能しません。 grepの$を正しく解釈すると、日付は行の最後のフィールドです。

この試み:

awk '$NF >= 1965 && $NF <= 1996' filename

grepを使用する必要がある場合は、より複雑になります。

grep -E '196[5-9]|19[78][0-9]|199[0-6]$' filename

おすすめ記事