#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}' *