awkunix-匹配正则表达式-正则表达式字符串大小限制想法?

以下代码用作最小示例。它在文本中搜索一个不匹配的正则表达式(后来是一个大的 DNA 文件)。

awk 'BEGIN{print match("CTGGGTCATTAAATCGTTAGC...", /.ATC|A.TC|AA.C|AAT./)}'

后来我对找到正则表达式的位置感兴趣。因此 awk 命令更复杂。就像这里解决了一样

如果我想搜索更多的不匹配和更长的字符串,我会想出很长的正则表达式:

example: "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" with 3 mismatches "." allowed:
/
...AAAAAAAAAAAAAAAAAAAAAAAAAAA|
..A.AAAAAAAAAAAAAAAAAAAAAAAAAA|
..AA.AAAAAAAAAAAAAAAAAAAAAAAAA|
-
- and so on. (actually 4060 possibilities)

/

我的解决方案的问题是:

  • awk 不会接受很长的正则表达式!(限制似乎在大约 80.000 个字符)
  • 错误:“bash:/usr/bin/awk:参数列表太长”
  • 可能的解决方案:SO-Link但我没有找到解决方案...

我的问题是:

  • 我还能以某种方式使用长正则表达式吗?
    • 拆分字符串并多次运行命令可能是一个解决方案,但是我会得到重复的结果。
  • 有没有另一种方法来解决这个问题?
    • (“agrep”会起作用,但不能找到位置)
以上是awkunix-匹配正则表达式-正则表达式字符串大小限制想法?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>