我是bash脚本的新手,并且对此感到厌烦:
tab=( "^[A-Z]\{4,\}[0-9]\{4,\}" )
for (( i=0; i<=$(( ${#tab[*]} - 1 )); i++ ))
do
tmp+=" grep -v \"${tab[i]}\" |"
done
# for remove the last |
chaine=`echo $tmp| rev | cut -c2- | rev`
#result anticipe "cat ${oldConfFile[0]} | grep -v "^[A-Z]\{4,\}[0-9]\{4,\}"
cat ${oldConfFile[0]} | echo $chaine
我的麻烦在那里,如何同时使用cat和echo?
非常感谢。
答案 0 :(得分:1)
您不需要为每个模式进行grep操作,只需将您的模式与管道(|
)连接,然后一次grep。例如,如果要从foo
中滤除包含bar
,baz
和file
的行,请使用以下命令:
grep -v 'foo|bar|baz' file
您可以在调用之外构建模式,以提高可读性,例如:
my_pattern='foo'
my_pattern+='|bar'
my_pattern+='|baz'
grep -v "$my_pattern" file