Использование find с grep и передача результата другому grep

PPA не найден; удалите его или отключите из источников программного обеспечения. Если вы открываете источники программного обеспечения, переключитесь на другую вкладку, затем найдите строки, содержащие «http://ppa.launchpad.net/chris-lea/munin-plugins», которые вы можете снять, чтобы отключить, или выбрать и удалить, чтобы удалить.

Полная информация об использовании здесьhttps://help.ubuntu.com/community/Repositories/Ubuntu

-1
18.03.2020, 20:38
2 ответа

Большое спасибо Джорджу Василиу, оба ответа сработали нормально, ответ 2 — мой выбор.

Answer 1

find /Dime/Lock_Room/ -name CDRV.txt -type f -mtime -1 -exec bash -c 'fgrep "Audience <(fgrep "Prime_Time" $0)' {} \;

Answer 2

find /Dime/Lock_Room/ -name CDRV.txt -type f -mtime -1 -exec awk '/Audience/ && /Prime_Time/' {} \;

0
28.04.2021, 23:20

Вам нужно будет передать результат первого grepво второй grep. Команда в вашем вопросе выполняет оба вызова grepнезависимо друг от друга.

Было бы предложение сделать

find /Dime/Lock_Room/ -type f -mtime -1 -name CDRV.txt \
    -exec grep -F Audience {} \; | grep -F Prime_time

Это найдет ваш CDRV.txtфайл (, если файл пройдет тесты -typeи -mtime), и извлечет все строки, содержащие подстроку Audience. Этот результат будет передан второму grep, который извлечет строки, которые также содержат подстроку Prime_Time. Эта вторая grepвыполняется независимо от команды find.

Очевидно, вы могли бы использовать строку Audience,Prime_Timeс grepнапрямую или, если порядок этих двух строк неясен, использовать awk, как вы предлагаете в своем собственном ответе , что даст вам немного больше гибкости.

На обычной машине Linux под управлением bashвы также можете обойтись безfind:

touch --date='now -1 day' timestamp
shopt -s globstar dotglob nullglob

for pathname in /Dime/Lock_Room/**/CDRV.txt; do
    if [[ ! -f $pathname ]] || [[ $pathname -ot timestamp ]]; then
        continue
    fi
    grep -F Audience "$pathname"
done | grep -F PrimeTime
rm -f timestamp
0
28.04.2021, 23:20

Теги

Похожие вопросы