Linux系统中shell的grep加正则表达式语句

文件中有很多行数据,每行数据是5个数字,如:
97878
34341
13456
24689
12468
……
用grep加正则表达式求:

  1. 文件中包含ABAB规则的行,并将其保存到文件a1中(如97878,34341)
  2. 文件中符合递增规则的行,并将其保存到文件a2中(如13456,24689,12468)
  3. 文件中至少包含三位递增步长等于2的行,并将其保存到文件a3中(如24689,12468)

参考如下

grep -P '(\d)(?!\1)(\d)\1\2' 1.txt > a1  //可以过滤掉AAAA形式
grep -P '^(?=\d{5}$)0?1?2?3?4?5?6?7?8?9?$' 1.txt > a2
grep -P '(135|357|579|024|246|468)' 1.txt > a3
grep -P '(\d)(\d)\1\2' s.txt > a1
grep -P '^(?=\d{5}$)0?1?2?3?4?5?6?7?8?9?$' s.txt > a2
grep -P '(135|357|579|024|246|468)' s.txt > a3

都有答案了,我留言是关注一下这个问题(Linux系统中shell的grep加正则表达式语句),博主 X-道至简 的回答,已经回答完毕了。

grep -P '(\d)(\d)\1\2' nums.txt > a1
grep -P '^(?=\d{5}$)0?1?2?3?4?5?6?7?8?9?$' nums.txt > a2