bash脚本猫和回声

时间:2019-03-22 10:27:31

标签: bash scripting echo cat

我是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?

非常感谢。

1 个答案:

答案 0 :(得分:1)

您不需要为每个模式进行grep操作,只需将您的模式与管道(|)连接,然后一次grep。例如,如果要从foo中滤除包含barbazfile的行,请使用以下命令:

grep -v 'foo|bar|baz' file

您可以在调用之外构建模式,以提高可读性,例如:

my_pattern='foo'
my_pattern+='|bar'
my_pattern+='|baz'

grep -v "$my_pattern" file