сценарий Bash кот и эхо - PullRequest
0 голосов
/ 22 марта 2019

Я новичок в 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 Ответ

1 голос
/ 22 марта 2019

Вам не нужно выполнять 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
...