2013-08-17 68 views
2

我试图使用grep查找整个字符串。我对-w标志很熟悉,但它让我很难接受,因为它将一个点作为分隔符。使用grep查找整个字符串

例如,我有一个文件名为“a.txt中”和目录名的一些目录,这是发生了什么:

> ls | grep -w a 
a 
a.txt 

我希望它找到什么是只有“一个”和而已。

我该怎么做?

回答

2

如果你想线路上的单a,使用

grep '^a$' 

如果你只需要空格作为分隔符,使用

​​

(即空白或该行的开头,一,空白或行结束)。

1

更简单的方法也应该是:

grep '^[[:space:]]*a[[:space:]]*$' 

东西更友好的使用变量是使用AWK的。它不会将输入模式解释为正则表达式。

awk -v v="$var" '{ sub(/^[[:space:]]*/, ""); sub(/[[:space:]]*$/, ""); }; $0 == v;' 
2

使用grep的x选择启用

ls | grep -x a