更改grep命令的分隔符

12 浏览
0 Comments

更改grep命令的分隔符

我正在使用grep来检测这里的内容
\n当输入中的链接被分成两行时,它无法正常工作。我希望grep检查直到它检测到,但现在它只会将输入传递给grep直到它检测到一个新行。\n所以,如果输入类似于这里的内容它可以工作,但如果输入类似于\n


这里的内容    

\n,那么它就无法工作。\n有什么解决方案吗?

0
0 Comments

问题出现的原因是需要更改grep命令的分隔符。解决方法是使用sed命令来代替grep,并在sed命令中使用自定义的分隔符。具体的解决方法如下:

我建议将输入折叠,使得开标签和闭标签在同一行,然后将该行与模式进行匹配。使用sed命令是一种惯用的方法:

sed '/<[Aa][^A-Za-z]/{ :A
     /<\/[Aa]>/ bD
     N
     bA
     :D
     /\n/ s// /g
}
# 现在尝试你的模式
/<[Aa][^A-Za-z] href="xxx"[^>]*>[^<]*something here[^<]*<\/[Aa]>/ !d'

以上是解决问题的方法,通过使用sed命令并更改分隔符来替代grep命令。

0
0 Comments

在使用grep命令时,有时会遇到需要更改分隔符的情况。下面是一个解决这个问题的方法和原因。

原因:

在某些情况下,grep命令会默认使用空格作为分隔符来匹配文本。然而,在某些情况下,我们可能需要使用其他分隔符来匹配特定的文本模式。例如,当我们需要搜索包含多行文本的文件时,使用默认分隔符可能会导致无法正确匹配模式。

解决方法:

为了解决这个问题,可以使用sed、awk或者扩展版的grep(如pcregrep)来更改分隔符。下面是一个使用pcregrep命令的示例:

pcregrep -Mio "<a.*?>(.|\n)*?<.*?/a>" (其中i表示忽略大小写,o表示只打印匹配的文本)

此外,可以参考stackoverflow上的相关问题:stackoverflow.com/questions/152708/…

当需要更改grep命令的分隔符时,可以使用sed、awk或pcregrep等工具来实现。这样可以更灵活地匹配特定的文本模式,尤其是在需要搜索多行文本的情况下。

0
0 Comments

问题出现的原因是使用grep命令时更改分隔符的需求。在处理大型文件时,grep命令可能会出现性能问题,而使用awk命令可以更好地满足需求。

解决方法是使用awk命令代替grep命令,并使用自定义的分隔符进行文件解析。下面是使用awk命令的示例代码:

awk '/a href="xxxx">/,/\/a>/' filename

此外,文章中还提到了更好的解决方法是使用xml解析器或xslt来处理xml文件,因为xml文件不是正则的,所以使用正则表达式往往会遇到困难。

作者分享了自己的经验,称在处理50GB的文件时,使用grep命令无法结束,而使用awk命令只需几分钟就能完成任务。这进一步证明了使用awk命令替代grep命令可以提高性能的优势。

总之,当需要更改grep命令的分隔符时,可以考虑使用awk命令作为一种更好的解决方案,尤其是在处理大型文件时。此外,对于处理xml文件,最好使用专门的解析器或xslt来处理,以避免使用正则表达式的困扰。

0