ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в виде списка. Как сделать так , чтобы при удалении некоторого файла из списка удалялось его имя?
>ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в виде списка. Как
>сделать так , чтобы при удалении некоторого файла из списка удалялось
>его имя?cat file| grep -v myfile > file
>>ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в виде списка. Как
>>сделать так , чтобы при удалении некоторого файла из списка удалялось
>>его имя?
>
>cat file| grep -v myfile > fileЭто не будет работать надежно Правильнее делать используя временный файл
Удачи
--- sas
Спасибо!!!
>>>ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в виде списка. Как
>>>сделать так , чтобы при удалении некоторого файла из списка удалялось
>>>его имя?
>>
>>cat file| grep -v myfile > file
>
>Это не будет работать надежно Правильнее делать используя временный файл
Просто как трусы за рпь двадцать
Но почему временной и почему не надежно?
С уважением.
>>>>ПРОГА в 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: есть файл,содержащий имена некоторых файлов в виде списка. Как
>>сделать так , чтобы при удалении некоторого файла из списка удалялось
>>его имя?
>
>cat file| grep -v myfile > file
Можно попытаться пропустить через регулярное выражение с функцией substitute, которое удалит имя и перевод строки (man sed, man awk, man perl).типа sprintf - s, символ привязки к началу строки, имя файла, символ привязки к концу строки, потом eval в perl.
>>>ПРОГА в BASH: есть файл,содержащий имена некоторых файлов в виде списка. Как
>Можно попытаться пропустить через регулярное выражение с функцией substitute, которое удалит имя
>и перевод строки (man sed, man awk, man perl).
>
>типа sprintf - s, символ привязки к началу строки, имя файла, символ
>привязки к концу строки, потом eval в perl.
Ну что вы опять усложняете. Можно сделать в csh двумы строчками.
А вы напариваете перл с всякими функциями. Ему нужно для этого учить перл
и знакомится с всеми функциями Перла?
awk = Perl
>Можно попытаться пропустить через регулярное выражение с функцией substitute, которое удалит имя
>
Давайте назовите функцию (встроенную) перловскую, а ей найду аналог
в стандартной устнановки UNIX.
Конечно не все найду но точно 66 процентов в вашей машине и в других
есть точно. То есть sh иногда уместень (с awk).