поиск нескольких файлов - PullRequest
2 голосов
/ 26 ноября 2009

Я хочу собрать несколько файлов в каталоге и собрать выходные данные каждого grep в отдельный файл. Так что, если я grep 20 файлов, я должен получить 20 выходных файлов, которые содержат искомый элемент. Кто-нибудь может мне помочь с этим? Спасибо.

Ответы [ 3 ]

8 голосов
/ 26 ноября 2009

Используйте оператор for:

for a in *.txt; do grep target $a >$a.out; done
1 голос
/ 26 ноября 2009

только одна команда gawk

gawk '/target/ {print $0 > FILENAME".out"}' *.txt
0 голосов
/ 26 ноября 2009

вы можете использовать только оболочку, не нужно внешних команд

for file in *.txt
do
    while read -r line
    do
        case "$line" in 
            *pattern*) echo $line >> "${file%.txt}.out";;
        esac
    done  < "$file"
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...