2012-11-26 72 views
2

Bash脚本编写并不是我最重要的一点。我有一个文件结构为Bash脚本:跳过文件和grep

% comment 
filename1 pattern-to-search1 
filename1 pattern-to-search2 
... 

我想编写一个脚本到grep filenamepattern-to-mat的所有文件中的每一行。

到目前为止,我有

while read file p 
do 
    if [ "${file:0:1}" != "%" ] 
    then 
    grep -o "$p" $file | wc -l 
    fi 
done 
echo -e "\nDone." 

但它不会跳过开头的文件%。有任何想法吗?

+0

我看不出在脚本中任何可能导致你的问题描述。你确定问题是你认为的吗? – ruakh

+0

告诉你实话,不。但我确实喜欢@ sehe的回答......看起来很漂亮。 –

回答

1

我简单地做

grep -v '^%' | while read file p 
do 
    grep -c "$p" -- "$file" 
done 

这样一来,注释行甚至不会达到read

+0

当你在它的时候,你可能会改变'-o'到'-c'并放下'| wc -l'。 (另外,'--'不会出错。) – ruakh

+0

我甚至没有读到那么远。这个问题不是必需的:) – sehe

+0

嗯,在我的答案中,你的答案中没有*是必要的。您的脚本似乎无法解决OP脚本的任何问题。 – ruakh