Don*_*Bit 0 sed text-formatting
有一个文本文件。(test.txt)
1970-01-01
1971-01-01
1972-01-01
1973-01-01
1974-01-01
....
1993-01-01
1994-01-01
1995-01-01
1996-01-01
...
2015-01-01
2016-01-01
Run Code Online (Sandbox Code Playgroud)
我想从 1970 年清除 1995 年上面的文本行。
下面是我做的 sed 命令。
sed -i '/197[0-9]/d' test.txt
sed -i '/198[0-9]/d' test.txt
sed -i '/199[0-5]/d' test.txt
Run Code Online (Sandbox Code Playgroud)
有没有办法将三个命令合并为一个命令 sed?
由于您的文件似乎已排序,因此您可以从头到尾删除
例如
sed -i '1,/^1995/d' test.txt
Run Code Online (Sandbox Code Playgroud)
如果日期在 1970 年之前开始,则
sed -i '/^1970/,/^1995/d' test.txt
Run Code Online (Sandbox Code Playgroud)
如果您的文件不按顺序,那么就没有简单的正则表达式(有一个很长很无聊的)可以匹配所有行,但是您可以指定多个
sed -i -e '/^19[78][0-9]/d' -e '/^199[0-5]/d' test.txt
Run Code Online (Sandbox Code Playgroud)