сценарий оболочки для поиска файла и последующего отображения содержимого файла - PullRequest
0 голосов
/ 24 февраля 2012

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

Я думал, что это будет что-то вроде:

$echo | ls /* | grep file.xml

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

Любая помощь по правильному синтаксису будет принята с благодарностью!

Ответы [ 3 ]

5 голосов
/ 24 февраля 2012

Вы можете использовать find:

find / -name file.xml -exec cat '{}' ';'

/ говорит, что искать в / и его подкаталогах;-name file.xml говорит, что нужно найти файлы с именем file.xml-exec cat '{}' ';' говорит, что должен запускаться, например, cat /path/to/file.xml для каждого из этих файлов, который печатает их содержимое.

0 голосов
/ 24 февраля 2012

Попробуйте это:

grep -lr "alice in wonderland" *

В этом списке будут перечислены все файлы, содержащие текст alice in wonderland.Если вы хотите отобразить содержимое каждого, сделайте следующее:

grep -lr "alice in wonderland" *|while read filename; do
  echo ---- Contents of: "$filename"
  cat "$filename"
done
0 голосов
/ 24 февраля 2012

Я думаю, что вы хотите, чтобы кошка файла.Обратите внимание, что он напечатает все файлы, если есть несколько совпадений.Вы можете получить ошибки разрешения, которые необходимо отфильтровать, если у вас недостаточно прав.Чтобы избежать, запускайте только те каталоги, на которые у вас есть права, выполняйте их с повышенными привилегиями или используйте grep для их удаления.Попробуйте:

cat `find / -name file.xml`
...