Regex 使用grep匹配数字流行(字节)中的前两位(仅)

Regex 使用grep匹配数字流行(字节)中的前两位(仅),regex,grep,Regex,Grep,我应该如何使用grep在一个方向上(即01051015中的01而不是10)匹配数字流行(1字节行)中的前两位(仅第一次出现); 我接受了测试: grep -E '^[0-9]\{2\}$' | grep -Po --color '01' <<< 01051015 > 010-10-- (current output) $cat -n test.txt 1 0001021113 2 0202031011 3 0103031113 4 .......... $ grep

我应该如何使用grep在一个方向上(即
01051015
中的
01
而不是
10
)匹配数字流行(1字节行)中的前两位(仅第一次出现); 我接受了测试:

grep -E '^[0-9]\{2\}$' | grep -Po --color '01' <<< 01051015
> 010-10-- (current output)

$cat -n test.txt
1 0001021113
2 0202031011
3 0103031113
4 .......... 
$ grep -oE '^[0-1][0-9]\{2,2\}' | grep -E '(10)' ./test.txt > matchedList.txt
$ cat -n matchedList.txt 
1 0001021113 
2 0202031011 
3 0103031113 
grep-E'^[0-9]\{2\}$'| grep-Po--color“01”matchedList.txt
$cat-n matchedList.txt
1 0001021113 
2 0202031011 
3 0103031113 
但我需要解析并计算第一个“par出现”(在本例中为“10”)。。。按照特定顺序和一个方向(如第2行);因此,正确的输出应该是:
2 0203031011

Tkx提前 L

其中:

  • 01
    是您要查找的第一个2位
  • -m1
    第一次出现的限制

尽可能添加一些输入和预期输出示例(代表性案例)$cat-n test.txt 1 0001021113 2 0203031011 3 0103031113 4………$grep-oE'^[0-1][0-9]\{2,2\}'| grep-E'(10)./test.txt>matchedList.txt$cat-n matchedList.txt 1 0001021132 0202031011 3 0103031113,但我需要按照特定顺序和一个方向(如第2行)解析和计算第一个“par出现点”(在本例中为“10”);所以正确的输出应该是:2 0203031011——请建议?!它只适用于一个流行,但不适用于解析文件的每一行。需求的第二部分是什么,这意味着将匹配的流行输出到一个新文件。我仍然在使用$$grep-oE'^[0-1][0-9]\{2,2\}'| egrep-e'(10)./test.txt>matchedList.txt,但效果不太好,所以我不得不手动返工很多。请告知;洛杉矶小溪是你的一条线吗?此grep在模式匹配的1行之后停止。也许一个更好的预期输出示例(基于post中的test.txt文件)将有助于我理解字符串仅为一行(0101101221),其中包括10位(或5对位:01 01 10 12 21)。我需要一个“grep”来解析(5对:01 01 10 12 21)中的每一个字符串行,进一步搜索管道中的第二个“grep”:(…| grep-E“12”),并输出/归档与所选对匹配的字符串行('12')。另一个问题是,我的“grep”不仅匹配正确的对('12'),而且匹配无效的对(121)。例如:1 000121113 2 021203011 3 0103031121 4 000102113 5 0203031021 6 0103031113,因此,对于以下内容:$$grep-oE'^[0-1][0-9]\{2,2\}'\'./test txt>matchedList.txt在(matchedList.txt)将是以下行:1 00 01 12 11 13 3 01 03 03 11 21 4 00 01 02 11 23 5 02 02 03 12 21我需要的输出应该是(字符串行“1 00 01 12 11 13”,与正确解析的对“12”匹配。
grep -m 1 -e '^01' YourFile