如何在特定文件位置grep两个字符

如何在特定文件位置grep两个字符,grep,Grep,我需要在一个文件中的特定位置为一个文件grep两个连续字符。我可以使用(在本例中,我为数字1进行grep)来grep单个字符: 这将搜索第一个字符,但我不知道如何检查第二个字符。 这两个字符是时间戳,我需要搜索18到23小时,以及00到06小时。 如有任何帮助,我们将一如既往地表示感谢:)如果您正在查找集合(18、19、20、21、22、23)中的一个小时,您希望在一组括号中使用“|”运算符: grep -E '^.{50}(18|19|20|21|22|23)' file.txt 这将匹配从

我需要在一个文件中的特定位置为一个文件grep两个连续字符。我可以使用(在本例中,我为数字1进行grep)来grep单个字符:

这将搜索第一个字符,但我不知道如何检查第二个字符。 这两个字符是时间戳,我需要搜索18到23小时,以及00到06小时。
如有任何帮助,我们将一如既往地表示感谢:)

如果您正在查找集合(18、19、20、21、22、23)中的一个小时,您希望在一组括号中使用“|”运算符:

grep -E '^.{50}(18|19|20|21|22|23)' file.txt
这将匹配从行的第51个字符开始的“|”分隔列表中的任何模式

要检查第51和52偏移处是否有两个重复的数字,请尝试:

grep-E'^.{50}([0-9])\1'file.txt


这里的back引用(\1)表示“匹配第一组括号编码的模式”。在本例中,如果文件的不同行中有11、12、13、21、22和23,则只有包含11和22的行会匹配。[0-9]将其限制为数字,\1表示匹配第一个数字。

如果您已经发布了输入字符串和预期输出,那就太好了
grep -E '^.{50}(18|19|20|21|22|23)' file.txt