Поскольку grep
может искать в нескольких файлах, а -v
и -c
код можно упростить, попробуйте:
cd "path_to file"
if grep -qs '^[^;[].*\\some_word' config.ini configuration.ini ; then
# ...etc
fi
cd -
Параметры grep
в полной форме:
grep --quiet --no-messages '^[^;[].*\\some_word' \
config.ini configuration.ini
Код OP -v
(или - инвертировать -match
) и второй grep
не нужны, потому что регулярное выражение типа ^ [^; []
может сделать это за один раз. Из man grep
:
Выражение в квадратных скобках - это список символов, заключенный в [ и ] . Он соответствует любому одиночному символу в этом списке; если первым символом списка является курсор ^ , то он соответствует любому символу , но не в списке .
В Linux вы можете использовать символическую ссылку / proc / self / exe
$ ls -l /proc/self/exe
lrwxrwxrwx 1 rudi users 0 2016-10-18 16:20 /proc/self/exe -> /usr/bin/ls