使用sed进行不区分大小写的搜索

时间:2014-05-14 05:32:35

标签: shell unix sed

我有一个这样的文件:

This     is    my work
This is my work
This is     my    WORK

我想搜索所有模式,无论空格和大/小写情况如何。我怎么能用sed做到这一点?

3 个答案:

答案 0 :(得分:2)

您不需要sedgrep使用忽略大小写并且每个空格上的量词*绰绰有余。

grep -i 'This *is *my *work' Input.txt 

如果你坚持使用sed,你可以使用this answer中的这个疯狂的黑客攻击,如下所示。

sed  's/This *is *my *work/&/I;tx;d;:x' Input.txt

您还可以使用以下jkyako答案的变体。

sed -n '/This *is *my *work/Ip' Input.txt

请注意,如果您不想匹配仅包含模式的行,但只想匹配匹配模式的行,则必须使用{锚定模式{1}}和^

$

答案 1 :(得分:0)

抱歉,我原来的答案中没有空格。 这应该可以解决这个问题。

grep -i "this\s*is\s*my\s*work" file

答案 2 :(得分:0)

特别是使用sed你可以尝试以下方法,也许还有更短的方法:

sed -n '/[Tt][Hh][Ii][Ss] *[Ii][Ss] *[Mm][Yy] *[Ww][Oo][Rr][Kk]/p'