带字符串的正则表达式grep过滤器

时间:2014-03-25 17:54:14

标签: regex bash shell

我有这样的文字:

  

div class =" ls-icon ls-item"数据ctrdot =" 214752854">
  div class =" ls-icon ls-item"数据ctrdot =" 213523235">
  div class =" ls-icon ls-item"数据ctrdot =" 788746365">
  div class =" ls-icon ls-item"数据ctrdot =" 332532436">

我想导出:

  

数据ctrdot =" 214752854">
  数据ctrdot =" 213523235">
  数据ctrdot =" 788746365">
  数据ctrdot =" 332532436">

但我不知道为什么这个

  

grep -o' data-ctrdot =" \ w *'

不起作用。 感谢

2 个答案:

答案 0 :(得分:3)

如果不起作用,则表示它输出:

data-ctrdot="214752854
data-ctrdot="213523235
data-ctrdot="788746365
data-ctrdot="332532436

而不是

data-ctrdot="214752854">
data-ctrdot="213523235">
data-ctrdot="788746365">
data-ctrdot="332532436">

然后是的,它已经坏了。但也许你可以将最后两个字符注入grep表达式?

grep -o 'data-ctrdot="\w*">'

data-ctrdot="214752854">
data-ctrdot="213523235">
data-ctrdot="788746365">
data-ctrdot="332532436">

答案 1 :(得分:1)

您可以使用:

awk '/data-ctrdot=/{print $NF}' file