我有一个适用于某些日期的 grep,但无法让我的大脑使其完全发挥作用。
grep 19[6-9][5-6]$ filename
Run Code Online (Sandbox Code Playgroud)
它正确地捕获了一些,但我希望抓住 1965 年至 1996 年之间的所有年份。
这是当前的解决方案,但确实在寻找一行,但这是我到目前为止所得到的:
grep 196[5-9]$ filename
grep 197[0-9]$ filename
grep 198[0-9]$ filename
grep 199[0-6]$ filename
Run Code Online (Sandbox Code Playgroud)
如果可能,寻找更好和更短的?
tin*_*ink 13
日期范围和正则表达式并不是很好的匹配。如果我正确解释了 grep 中的 $ 日期是一行中的最后一个字段。
尝试这个:
awk '$NF >= 1965 && $NF <= 1996' filename
Run Code Online (Sandbox Code Playgroud)
如果您必须使用 grep,它会变得更加复杂:
grep -E '196[5-9]|19[78][0-9]|199[0-6]$' filename
Run Code Online (Sandbox Code Playgroud)