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

Исходное сообщение
"ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в виде списк"

Отправлено ADER , 11-Фев-04 11:25 
ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в виде списка. Как сделать так , чтобы при удалении некоторого файла из списка удалялось его имя?

Содержание

Сообщения в этом обсуждении
"ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в ..."
Отправлено Bootmen , 11-Фев-04 18:49 
>ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в виде списка. Как
>сделать так , чтобы при удалении некоторого файла из списка удалялось
>его имя?

cat file| grep -v myfile > file


"ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в ..."
Отправлено sas , 11-Фев-04 23:39 
>>ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в виде списка. Как
>>сделать так , чтобы при удалении некоторого файла из списка удалялось
>>его имя?
>
>cat file| grep -v myfile > file

Это не будет работать надежно Правильнее делать используя временный файл

Удачи
--- sas


"ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в ..."
Отправлено ADER , 12-Фев-04 09:14 
Спасибо!!!


"ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в ..."
Отправлено Bootmen , 15-Фев-04 09:24 
>>>ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в виде списка. Как
>>>сделать так , чтобы при удалении некоторого файла из списка удалялось
>>>его имя?
>>
>>cat file| grep -v myfile > file
>
>Это не будет работать надежно Правильнее делать используя временный файл


Просто как трусы за рпь двадцать
Но почему временной и почему не надежно?
С уважением.


"ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в ..."
Отправлено sas , 15-Фев-04 10:55 
>>>>ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в виде списка. Как
>>>>сделать так , чтобы при удалении некоторого файла из списка удалялось
>>>>его имя?
>>>
>>>cat file| grep -v myfile > file
>>
>>Это не будет работать надежно Правильнее делать используя временный файл
>
>
>Просто как трусы за рпь двадцать
>Но почему временной и почему не надежно?
>С уважением.

Буфера  :)  и чтение/запись из/в один и тот же файл. Ваш вариант будет работать только тогда, когда исходный файл настолько маленький, что-бы cat его считал в буфер целиком за один раз

Попрубуйте провести маленький эксперимент:

# --- Create relatively big file
i=0
while [ $i -lt 60000 ]; do echo "$i - ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ" >>ttt; i=$(($i+1)); done

# --- проверим сколько строчек
wc -l ttt

# ---  Выполним Ваш код
cat ttt | grep -v 10000 >ttt

# --- еще раз проверим сколько строчек
wc -l ttt

Успехов
---  sas


"ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в ..."
Отправлено Murr , 12-Фев-04 21:35 
>>ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в виде списка. Как
>>сделать так , чтобы при удалении некоторого файла из списка удалялось
>>его имя?
>
>cat file| grep -v myfile > file
Можно попытаться пропустить через регулярное выражение с функцией substitute, которое удалит имя и перевод строки (man sed, man awk, man perl).

типа sprintf - s, символ привязки к началу строки, имя файла, символ привязки к концу строки, потом eval в perl.


"ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в ..."
Отправлено Bootmen , 15-Фев-04 09:22 
>>>ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в виде списка. Как
>Можно попытаться пропустить через регулярное выражение с функцией substitute, которое удалит имя
>и перевод строки (man sed, man awk, man perl).
>
>типа sprintf - s, символ привязки к началу строки, имя файла, символ
>привязки к концу строки, потом eval в perl.


Ну что вы опять усложняете. Можно сделать в csh двумы строчками.
А вы напариваете перл с всякими функциями. Ему нужно для этого учить перл
и знакомится с всеми функциями Перла?
awk = Perl


"ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в ..."
Отправлено Bootmen , 15-Фев-04 09:34 
>Можно попытаться пропустить через регулярное выражение с функцией substitute, которое удалит имя
>
Давайте назовите функцию (встроенную) перловскую, а ей найду аналог
в стандартной устнановки UNIX.
Конечно не все найду но точно 66 процентов в вашей машине и в других
есть точно. То есть sh иногда уместень (с awk).