URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5279
[ Назад ]

Исходное сообщение
"Перемещение файлов содержащих соотв.текст в другую директорию"

Отправлено grinch , 27-Мрт-06 18:13 
Добрый день !

Помогите PLZ
1. Необходимо переместить все файлы из директории A содержащие текст напр."test" в директорию B
2. Необходимо прочитать значения из нескольких файлов, а результат (например сумма)сохранить в новом файле.

Заранее благодарю


Содержание

Сообщения в этом обсуждении
"Перемещение файлов содержащих соотв.текст в другую директори..."
Отправлено СергейК , 27-Мрт-06 19:41 
>Добрый день !
>
>Помогите PLZ
>1. Необходимо переместить все файлы из директории A содержащие текст напр."test" в
>директорию B
>2. Необходимо прочитать значения из нескольких файлов, а результат (например сумма)сохранить в
>новом файле.
>
>Заранее благодарю


Ну пункт первый решается например так

for a in A/* ; do { if grep -e test $a > /dev/null; then mv $a B ; fi ; } ; done


"Перемещение файлов содержащих соотв.текст в другую директори..."
Отправлено BigShadow , 30-Мрт-06 14:52 
>Ну пункт первый решается например так
>for a in A/* ; do { if grep -e test $a > /dev/null; then mv $a B ; fi ; } ; done

неплохо добавить опцию -q
тогда grep будет прекращать работу при первом обнаружении шаблона
т.е. преобразить скрипт так:

for a in A/* ; do grep -q test $a && mv A/$a B ; done


>>2. Необходимо прочитать значения из нескольких файлов,
>>а результат (например сумма)сохранить в новом файле.

вы точнее дайте постановку задачи
вам нужно несколько файлов в один объеденить
или вычислять чего-то?


"Перемещение файлов содержащих соотв.текст в другую директори..."
Отправлено grinch , 30-Мрт-06 15:29 
Не подскажете по первому пункту как подсчитать кол-во перемещенных файлов.

"Перемещение файлов содержащих соотв.текст в другую директори..."
Отправлено BigShadow , 02-Апр-06 15:02 
>Не подскажете по первому пункту как подсчитать кол-во перемещенных файлов.

for a in A/*
do
  grep -q test $a && mv A/$a B && count=$[++count] || error=$[++error]
done
echo $count files from $[count+error] moved

Типа-так, конструкция $[выражение] работает только в bash и,
если необходимо обеспечение переносимости следует, использовать expr



"Перемещение файлов содержащих соотв.текст в другую директори..."
Отправлено BigShadow , 30-Мрт-06 15:26 
>Ну пункт первый решается например так
>for a in A/* ; do { if grep -e test $a > /dev/null; then mv $a B ; fi ; } ; done

неплохо добавить опцию -q
тогда grep будет прекращать работу при первом обнаружении шаблона
т.е. преобразить скрипт так:

for a in A/* ; do grep -q test $a && mv A/$a B ; done


>>2. Необходимо прочитать значения из нескольких файлов,
>>а результат (например сумма)сохранить в новом файле.

вы точнее дайте постановку задачи
вам нужно несколько файлов в один объеденить
или вычислять чего-то?