Небольшой скрипт на shell......

Автор boryspil, 18 января 2014, 16:14:46

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

boryspil

Задача примерно выглядит таким образом : необходимо в некоей директории (например, домашней, /home/username/) найти все текстовые файлы, скопировать оные и в качестве вложений отправить на некий адрес электронной почты.
Замечания : текстовые файлы могут не иметь расширения .txt, на компьютере из консольных почтовиков установлен скорее всего только mail, командный процессор bash.
Заранее спасибо за ваши ответы.
P.S. интересует именно скрипт на shell, perl не интересует.

Malaheenee

boryspil, направление - утилита find. Ну и книжка, соответственно. Здесь Вам не стол заказов, так что набросайте сами и уже потом уточняйте что работает, а что нет.
Все мы где-то, когда-то и в чем-то были новичками.

boryspil

#2
Цитата: Malaheenee от 18 января 2014, 22:51:57
boryspil, направление - утилита find. Ну и книжка, соответственно. Здесь Вам не стол заказов, так что набросайте сами и уже потом уточняйте что работает, а что нет.
...с какой опцией использовать команду find, чтобы найти текстовый файл ? Другими словами я просто не могу понять, каким образом при отсутствии расширения файла я смогу отобрать все текстовые файлы ... если было бы расширение - я бы отобрал файлы по маске *.txt, но расширений нет, имена могут быть любые....я знаю, что есть команда file, определяющая тип файла, но как ее использовать в данном случае...была идея как-то отобрать все файлы по размеру...вроде бы текстовые файлы не должны иметь большой размер...вот отобрать все файлы размером не более Х...затем передать их в конвейер.... вообщем растерялся немного..

qupl

boryspil, может быть, выбирать файлы содержащие непечатные символы (file примерно этим и занимается). По размеру - не вариант.

Malaheenee

#!/bin/sh

for f in $(find /path/to/files -type f); do
  if [ $(file $f | grep ASCII  | cut -d " " -f3) == 'text' ]; then
    echo $f
  fi
done


Несколько глюкаво и медленно работает, но в первом приближении дает нужный результат.
Все мы где-то, когда-то и в чем-то были новичками.