quote literal的基本别名

时间:2013-05-07 13:06:25

标签: bash unix

任何人都可以帮助为什么这会给我带来错误,而不是在~/.bashrc工作。

非常感谢:

alias ferr='grep ^ \'ERRROR\' ' 

尝试让ferr找到所有以^ ERROR开头的行(注意:^ERRROR之间的空格)。

我也试过了,但似乎没有用:

ferr() {grep ^' ERROR' "$@"}

这可能是其中一个当然是问题的时刻。

3 个答案:

答案 0 :(得分:1)

有几个问题。单个刻度\内部无效。所以shell看到:grep ^ \后跟ERROR' '。这意味着shell只能看到四个滴答中的三个,并且它会想知道最后一个走到哪里。

接下来,我认为^不是grep的有效参数。试试"^ ERROR"(并确保你也可以获得R的数量。

如果你想在一行开头匹配某些内容,请使用

alias ferr="egrep '^pattern'"

模式是你寻找的。如果模式真的包含^,这会变得更加复杂。为简单起见,我建议搜索:

alias ferr="egrep '^. ERROR'"

即。搜索任何以任何内容开头的行,后跟空格,后跟单词ERROR

答案 1 :(得分:0)

尝试:

alias ferr="grep ^ERRROR"

要在ERROR尝试之前包含空格:

alias ferr="grep \"^ ERRROR\""

答案 2 :(得分:0)

使用alias ferr='grep -E "^ERROR"' 然后搜索以ERROR开头的所有行,只需使用[bash]$ ferr <filename>

要使用其他字符串进行搜索,请替换"

中的内容