Bash,正则表达式,参数到文件

时间:2012-12-29 14:17:04

标签: bash

我有一个分配,我必须向文件发送一个无限的参数列表,该文件必须打印以下列方式重复的字符串:

  

... NumNumNumCharCharChar

  • 号码
  • Char-character

以下三个数字相同,以及三个下一个字符,然后是另外三个数字,然后是另外三个字符。 字符串必须以数字开头,并以重复的方式结束字符。

为了解决这个问题,您可以只使用 <{em> grep / egrep - 这取决于您,这意味着解决方案是正则表达式。

好的,这就是我想为egrep做的事情:

egrep "^([0-9][0-9][0-9][a-b][a-b][a-b])\1*$"

1 个答案:

答案 0 :(得分:0)

你的尝试几乎是正确的。反向引用\1将需要重复匹配的字符串,而不是匹配的模式。允许模式重复。在重复内部,您确实需要反向引用:

egrep '^(([0-9])\2{2}([a-z])\3{2})+$' file

作为shell脚本调整,我切换到单引号(双引号不太安全),我将小写类扩展为[a-z]。请注意,外括号是第1组,因此内部带括号的表达式的反向引用将为\2\3