2010-03-13 102 views

回答

4

如果您需要执行对包含文本的所有文件的命令,你可以用xargs结合grep 。例如,这将删除含有“yourtext”所有文件:

grep -l "yourtext" * | xargs rm 

要搜索一个文件,使用if grep ...

if grep -q "yourtext" yourfile ; then 
    # Found 
fi 
2

像下面会做你的需要。

grep -w "text" file > /dev/null 

if [ $? -eq 0 ]; then 
    #Do something 
else 
    #Do something else 
fi 
+1

我更喜欢'如果[$(grep的-c “文本” 文件)-gt 0]',但它同样的事情。 – 2010-03-13 18:41:19

+1

马丁的方法(使用'grep -q')比这两种方法都更快(不搜索整个文件,只是第一次匹配)和(恕我直言)清洁。 – 2010-03-13 20:25:20

1

你可以把grepif语句中,你可以使用-q标志使其沉默。

if grep -q "text" file; then 
    : 
else 
    : 
fi 
0

只是使用shell

while read -r line 
do 
    case "$line" in 
    *text*) 
     echo "do something here" 
     ;; 
    *) echo "text not found" 
    esac 
done <"file"