我有一个包含以下字符串的 .txt。
ANEW.0000+0530-0015+0530_NEW
ANEW.0000+0530-0100+0530_NEW
ANEW.0045+0530-0100+0530_NEW
ANEW.0100+0530-0115+0530_NEW
ANEW.0100+0530-0200+0530_NEW
ANEW.0145+0530-0200+0530_NEW
ANEW.0200+0530-0215+0530_NEW
ANEW.0200+0530-0300+0530_NEW
ANEW.0245+0530-0300+0530_NEW
ANEW.0300+0530-0315+0530_NEW
ANEW.0300+0530-0400+0530_NEW
ANEW.0345+0530-0400+0530_NEW
ANEW.0400+0530-0415+0530_NEW
ANEW.0400+0530-0500+0530_NEW
ANEW.0445+0530-0500+0530_NEW
ANEW.0500+0530-0515+0530_NEW
ANEW.0500+0530-0600+0530_NEW
ANEW.0545+0530-0600+0530_NEW
ANEW.0600+0530-0615+0530_NEW
ANEW.0600+0530-0700+0530_NEW
ANEW.0645+0530-0700+0530_NEW
ANEW.0700+0530-0715+0530_NEW
ANEW.0700+0530-0800+0530_NEW
ANEW.0745+0530-0800+0530_NEW
ANEW.0800+0530-0815+0530_NEW
ANEW.0800+0530-0900+0530_NEW
ANEW.0845+0530-0900+0530_NEW
ANEW.0900+0530-0915+0530_NEW
ANEW.0900+0530-1000+0530_NEW
ANEW.0945+0530-1000+0530_NEW
我需要 grep 所有像 0400+0530-0500+0530,0500+0530-0600+0530 等的行。有人可以告诉我如何使用 grep 命令来获得所需的输出吗?
我已经尝试如下。但它不起作用。
cat myfile.txt |grep "*00+0530-*00+0530*"
假设具有四位数字的子字符串是时间戳,您似乎想要排除包含从一刻钟或一刻钟开始的时间戳的行。
为此,请
grep
像这样使用:或更短,
这里的两个正则表达式将匹配从过去一刻钟到一刻钟的任何时间戳,在一行的任何地方。如果任一表达式匹配,则由于该选项而不会
-v
从文件中提取该行,这会反转匹配的含义。给定问题中的输入,此命令的结果是
您的表达式的问题是
*
基本正则表达式开头的 a 与文字匹配*
,并且您的数据中没有这样的字符。此外,0*
末尾的字符匹配字符0
零次或多次,-*
中间匹配零次或多次破折号。尝试这个
点 (
.
) 插入到任何字符的搜索字符串中。你不需要cat
。