LinuxForum.Fans
Тема

Как выполнить кучу команд из файла

Автор: rayden8 30 сообщений 7657 просмотров
#334597

да только там в конце 1 2 3 4 разные

#334598
"rayden8⇓" написал:
копируется только последний файл.
Значит условие в первом сообщении темы описано неверно.

"rayden8⇓" написал:
есть файл с набором команд
команд 6 тысяч.  команды копируют выборрочно файлы из каталога в другой каталог
cp /tor/ler/or/712/14130476.txt .

Либо команда выполняется не в том каталоге, от которого прописаны пути в файле. Третий вариант -- неправильные разделители в файле (пара символов 0x0a 0x0d как в Windows)

#334601
bormant написал:
[quote="rayden8⇓"]копируется только последний файл.
Значит условие в первом сообщении темы описано неверно.

"rayden8⇓" написал:
есть файл с набором команд
команд 6 тысяч.  команды копируют выборрочно файлы из каталога в другой каталог
cp /tor/ler/or/712/14130476.txt .

Либо команда выполняется не в том каталоге, от которого прописаны пути в файле. Третий вариант -- неправильные разделители в файле (пара символов 0x0a 0x0d как в Windows)[/quote]



Да в конце каждой строчке стоит разделитель ^M почему то... как его убрать?

#334608
"rayden8⇓" написал:
в линуксе, если открываю, отображается как "^M"
text
dos2unix имя_файла

или

text
sed -i -e 's/'"$(printf '\015')"'$//' имя_файла

или (^M нужно набирать как Ctrl+V Ctrl+M)

text
sed -i -e 's/^M$//' имя_файла
#334609
rayden8 написал:
[quote=bormant][quote="rayden8⇓"]копируется только последний файл.
Значит условие в первом сообщении темы описано неверно.

"rayden8⇓" написал:
есть файл с набором команд
команд 6 тысяч.  команды копируют выборрочно файлы из каталога в другой каталог
cp /tor/ler/or/712/14130476.txt .

Либо команда выполняется не в том каталоге, от которого прописаны пути в файле. Третий вариант -- неправильные разделители в файле (пара символов 0x0a 0x0d как в Windows)[/quote]



Да в конце каждой строчке стоит разделитель ^M почему то... как его убрать?[/quote]
Попробуй:

text
cat file.txt|sed '/\^M//'>>file2.txt
#334612
"bormant⇓" написал:
sed -i -e 's/'"$(printf '\015')"'$//' имя_файла

эта команда сработала. все Sh запустилось. вроде копируется

#334614
rayden8 написал:
Да в конце каждой строчке стоит разделитель ^M почему то... как его убрать?

На будущее, выкиньте кривой Блокнот и сохраняйте нормальным редактором сразу в unix-формате.

#334618

"yars⇓" написал:
кривой Блокнот
В этой части он полностью следует правилам своей платформы -- разделителем строк в DOS/Windows является пара CR LF (0x0a 0x0d).
#334631

да. тоже прочитал сейчас.... автоматически ставятся разделители....Все скопировалось. команда работает. спасибо большое

#334636

Если вам интересен Linux, имеет смысл изучать документацию, как присутствующую в системе, так и в сети. А то из-за одной команды целая тема ;-) Эту же задачу можно решить и более эффективным способом. Почитайте "Искусство написания bash-скриптов".

Войдите или зарегистрируйтесь, чтобы ответить.