Искать текст во всех файлах в tgz - PullRequest
0 голосов
/ 04 мая 2018

Unix Scripting

Создание сценария Unix, который может выполнять:
1) Поиск текста во всех файлах в tgz
2) Поиск FileName во всех файлах в tgz
и создает отдельный архивный файл, содержащий результат. "

Скрипт должен иметь возможность таблицы ниже параметров:

scriptname ""text"" ""file.tgz"" ""user""

вывод в /var/tmp/user/result_[time].tgz
В файле результатов должны быть все файлы, содержащие предоставленный текст.

scriptname ""FileName"" ""file.tgz"" ""user""

вывод в /var/tmp/user/result_ndomtime‹.tgz
В результате tgz должен иметь все файлы, соответствующие имени "

1 Ответ

0 голосов
/ 06 мая 2018

Для начала:

$ cat foo.txt                         # two test files
foo
baz
$ cat bar.txt
bar
baz
$ tar czvf test.tar.gz *.txt          # tar and gzip them
$ mkdir temp                          # working dir
$ cd temp                             # work in it 

Скрипт для Поиск текста (foo) во всех файлах в tgz (test.tar.gz).

$ OIFS=$IFS
$ IFS=$'\n'                           # handle space in filenames     
$ for i in $(tar tzf ../test.tar.gz)  # list files in the tar and for loop them
  do 
    tar xzf ../test.tar.gz "$i"       # extract each file individually
    grep -l foo "$i"                  # grep for string foo in each file
    rm -f $i                          # rm extracted file
  done
foo.txt                               # the output
$ IFS=$OIFS
...