Поиск списка файлов по имени с учетом списка ключевых слов и поиск списка ключевых слов, которые не были найдены - PullRequest
0 голосов
/ 10 сентября 2011

Проблема: у меня есть список ключевых слов, подобных этому, в файле call words.txt

141367
141374
141376
141368

и мне нужно использовать его для поиска в большой сложной папке любого файла с любым из ключевых слов в его имени. Мне нужен отчет из двух разных списков.

  1. Список найденных файлов, в имени которого содержится любое из ключевых слов.
  2. Список ключевых слов, которые никогда не были найдены ни в одном имени файла.

Помощь

Ответы [ 2 ]

2 голосов
/ 10 сентября 2011

не проверено

files=$(find folder_name -type f | fgrep -f keywords.txt)

not_found=$(comm -23 <(sort keywords.txt) <(fgrep -f keywords.txt <<< "$files" | sort)
0 голосов
/ 10 сентября 2011

Вот что-то в bash (ver4 +)

#!/bin/bash

filecontent=($(<file))
shopt -s globstar
for file in **
do
    found="0"
    for word in ${filecontent[@]}
    do
       case "${file##*/}" in
         *"$word"* )
            echo "file found: $file with keyword: $w"
            found="1"
            ;;
       esac
    done
    case "$found" in
        "0") echo "No keyword file: $file";;
    esac
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...