Возможно, я неправильно понял вопрос, но
ls -ls | grep 'Oct 26'> oct26.list
выдаст список файлов за 26 октября; то же самое можно сделать e. грамм. с часами, используя дополнительный grep "| grep 09:" и т. д. Затем сделайте со списком oct26.list все, что вам нужно.
Вы можете сделать это только с помощью find
, используя действие -exec
:
find /location -size 1033c -exec cat {} +
{}
будет расширен до найденных файлов, а +
позволит нам прочитать как можно больше аргументов при вызове cat
, поскольку cat может принимать несколько аргументов.
Если ваша находка
не имеет расширения +
или вы хотите читать файлы один за другим:
find /location -size 1033c -exec cat {} \;
Если вы хотите использовать какие-либо параметры cat
, выполните:
find /location -size 1033c -exec cat -n {} +
find /location -size 1033c -exec cat -n {} \;
Здесь я использую параметр -n
, чтобы получить номера строк.
Используйте pipe и xargs
find /* -name pg_hba.conf | xargs cat
Если это не удается из-за отсутствия разрешений, вы можете использовать sudo, чтобы убедиться, что у вас есть разрешение на выполнение команды find в каталоге, который вы ищете.
sudo find /* -name pg_hba.conf | xargs sudo cat
Это будет печатать имя и содержимое текстовых (ascii )файлов -только рекурсивно..
find. -type f -exec grep -Iq. {} \; -print | xargs awk 'FNR==1{print FILENAME ":" $0; }'
Еще одна попытка
find. -type f -exec grep -Iq. {} \; -printf "\n%p:" -exec cat {} \;
Подстановка команд
Другим вариантом является использование Подстановки команд .Обертывание команды в $()
запустит команду и заменит ее выводом.
cat $(find./inhere -size 1033c 2> /dev/null)
станет
cat./inhere/file1./inhere/file2./inhere/file3
Это более или менее эквивалентно использованию старого стиля переноса команд с обратными галочками:
cat `find./inhere -size 1033c 2> /dev/null`
Дополнительные сведения см. в документах, указанных выше
Bash выполняет расширение, выполняя команду в среде подоболочки и заменяя подстановку команды стандартным выводом команды с удалением всех завершающих строк новой строки. Встроенные символы новой строки не удаляются, но они могут быть удалены при разделении слов. Подстановка команды $(cat file)
может быть заменена эквивалентной, но более быстрой $(< file)
.
Когда используется форма замены обратной кавычки в старом стиле -, обратная косая черта сохраняет свое буквальное значение, за исключением случаев, когда за ней следует $
, `
или \
. Первая обратная кавычка, которой не предшествует обратная косая черта, завершает подстановку команды. При использовании формы $(command)
все символы в скобках составляют команду; никто не лечится специально.
Подстановки команд могут быть вложенными. Для вложения при использовании формы с обратными кавычками экранируйте внутренние обратные кавычки с помощью обратной косой черты.
Если подстановка находится в двойных кавычках, разбиение на слова и расширение имени файла не выполняются для результатов.
См. этот другой ответ для некоторых хороших примеров использования.