Скрипт Bash с использованием find и grep - PullRequest
0 голосов
/ 04 октября 2019

Я использую скрипт bash для сопоставления определенных слов, но он не работает, он должен давать мне вывод цвета с помощью команды grep.

warrior(){
    echo ""
    for i in ${sources[@]}
    do
    echo ""
    echo ""
        a=$(grep -n "\$_${i}" $f | grep -o "\$.*=" | sed "s/[ ]\?=//g" | sort -u)

        for j in ${sinks[@]}
        do
            grep --color -n "${j}.*\$_${i}" $f

            for k in $a
            do
                grep --color -n "${j}.*$k" $f
            done
        done
    done
}

if [ $f != "-r" ]
then
    warrior
else
    for i in $(find $2 -type f -name "*.*")
    do
        echo "File: $i"
        f=$i
        warrior
    done
fi

Ожидаемый вывод:

14:     document.getElementById('p1').innerHTML = 'Hello, ' + username + '!';
36: document.getElementById('p1').innerHTML = 'Current market index is ' + market.index + '.';

Вывод ошибки:

./myprog.sh test
- empty results

1 Ответ

0 голосов
/ 04 октября 2019

Весь код в порядке, ошибка была командами grep -o и sed, кроме того, \ $ _ интерпретировался grep как EOL, удалив его, исправив проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...