Справка Unix по файлам

#unix #command #grep

#unix #команда #grep

Вопрос:

У меня есть два файла dat, которые созданы скриптом и сохранены в каталоге .. есть ли способ узнать, что происходит с файлами после их создания.. как я могу это выяснить .. еще одна вещь, какая команда ищет определенное слово во всех файлах в одном каталоге, я попробовал grep -r .. у меня не сработало .. любое другое предложение..

Комментарии:

1. «есть ли способ узнать, что происходит с файлами после их создания» — это слишком широкий вопрос.

2. скопировать ее и использовать diff? Я не уверен, что вы хотите выяснить.

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

Ответ №1:

Вы можете отслеживать файлы с помощью inotifywait(1) .

inotifywait эффективное ожидание изменений в файлах

Подходит для ожидания изменений в файлах из сценариев оболочки

Ответ №2:

Я согласен с другими, первая часть вашего вопроса слишком расплывчата. Почему бы не добавить какую-нибудь деталь вроде ‘Я ожидал, что файл изменится как XXXX’, как мне это подтвердить?’

Вы написали

какая команда выполняет поиск определенного слова во всех файлах в одном каталоге

Просто используйте обычный grep, т.Е.

 cd myDataDir
grep 'searchTarget' *
  

Я надеюсь, что это поможет.

P.S. поскольку вы, похоже, новый пользователь, если вы получите ответ, который поможет вам, пожалуйста, не забудьте пометить его как принятый и / или поставить ему (или -) в качестве полезного ответа.

Ответ №3:

Что касается второго вопроса:

 find . | xargs grep word_to_search
  

Она будет рекурсивно перечислять все файлы из текущего каталога (.) . Затем она передает их в качестве входных данных в grep.

Что касается первого вопроса: если вы планировали постоянно отслеживать изменения файлов, вы можете рассмотреть возможность использования svn.

Ответ №4:

Не понимаю вашего первого вопроса. Но что касается вашего второго вопроса, для поиска word в файлах в каталоге,

Решение в виде чистой оболочки

 shopt -s nullglob
for file in *
do
  while read -r line
  do
     case "$line" in
        *searchword*) echo "$file: $line";;
     esac
  done < "$file"
done
  

Используя grep

 grep -l "pattern" *
  

Используя awk

 awk '/pattern/{print FILENAME": "$0}' *