На самом деле это единственный раздел про unix на этом форуме
Модераторы: /dev/random , Модераторы разделов
vipermagi
Сообщения: 83
ОС: AgiliaLinux
Сообщение
vipermagi » 18.03.2014 20:33
В одном файле лежит список из названий серий. В другом - список соответствующих магнитных ссылок на эти серии.
Нужно из каждой соответствующей пары строк слепить нечто вот такое:
Код: Выделить всё
[url="magnet:?xt=urn:tree:tiger:MDPGD6CSQDACLPE2ADUQ3PO7YPRQYQIDQK6PVCA&xl=412983296&dn=CoolAnime%5b01"].avi]01. Episode Name[/url]
В интернетах повсюду примеры для обработки одного файла, типа:
Код: Выделить всё
cat $1 | while read line
do
ehco $line
done
Как сделать такое же, только чтобы в итерацию прочитывало в первую переменую строку одного файла, а во вторую переменную с тем же номером строку другого?
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux
Сообщение
Bizdelnick » 18.03.2014 20:54
vipermagi писал(а): ↑ 18.03.2014 20:33
Код: Выделить всё
[url="http://magnet:?xt=urn:tree:tiger:MDPGD6CSQDACLPE2ADUQ3PO7YPRQYQIDQK6PVCA&xl=412983296&dn=CoolAnime%5b01"].avi]01. Episode Name[/url]
Ссылка невалидная. http:// тут быть не должно.
Приведите примеры строк в первом и втором файле.
Пишите правильно:
в консоли
вк у́пе (с чем-либо)
в о бщем
воо бще в течение (часа)
новичо к
ню анс
по у молчанию приемле мо
проблем а
пробо вать
траф ик
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL
Сообщение
SLEDopit » 18.03.2014 21:09
Проще всего реализовать через paste. Что нибудь типа
Код: Выделить всё
paste file1 fil2 | while read var var2 ; do ... ; done
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
vipermagi
Сообщения: 83
ОС: AgiliaLinux
Сообщение
vipermagi » 18.03.2014 22:10
Bizdelnick писал(а): ↑ 18.03.2014 20:54
Ссылка невалидная. http:// тут быть не должно.
http:// само приписалось.
SLEDopit писал(а): ↑ 18.03.2014 21:09
Проще всего реализовать через paste. Что нибудь типа
Код: Выделить всё
paste file1 fil2 | while read var var2 ; do ... ; done
Во, то, что надо! А то понять не мог, как оно читает кого в какой аргумент.
Код: Выделить всё
#!/bin/sh
paste $1 $2 | while read magnet name;
do
echo \[url=$magnet\]$name\[/url\] >> $3;
done
дало нужный результат.