The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Программирование Shell"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Программирование Shell"  
Сообщение от Voblin on 12-Окт-07, 17:45 
Подскажите как сделать
У меня есть три файла: 1.dat, 2.dat, 3.dat

------------
1.dat

a="Путь1"
b="Путь2"
------------
------------
2.dat

Идти $a
------------
------------
3.dat

Идти $b
------------
Как мне их собрать в один файл 4.dat вида
----------
4.dat

Идти Путь1
Идти Путь2
----------

Т.е. в файле 1.dat содержатся переменные a и b с параметрами Путь1 Путь2, в файлах 2.dat и 3.dat строка "Идти " и имя переменной $a и $b соответственно, а в резльтате получается файл 4.dat

Как просто слить файлы я нашёл

#!/bin/bash
a="Путь1"
aaa="11.txt"
bbb="111.txt"
ccc="222.txt"
ddd="1.txt"
cat >> $ccc < $aaa
cat >> $ccc < $ddd
cat >> $ccc < $bbb

но замена переменной а при таком варианте не происходит просто в выходном файле остаётся $a

Что делать?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Программирование Shell"  
Сообщение от madskull (ok) on 12-Окт-07, 18:49 
Это чье ж больное воображение такое родило?.. :)

. 1.dat
eval echo `cat 2.dat` >> 4.dat
eval echo `cat 3.dat` >> 4.dat

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Программирование Shell"  
Сообщение от Voblin on 15-Окт-07, 10:04 
>Это чье ж больное воображение такое родило?.. :)
>
>. 1.dat
>eval echo `cat 2.dat` >> 4.dat
>eval echo `cat 3.dat` >> 4.dat

Ну моё, только это не сильно отличается от твоей кострукции. но я не нашёл конструкцию eval echo.
А как сделать чтобы перевод строки не исчезал?


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Программирование Shell"  
Сообщение от Voblin on 15-Окт-07, 12:34 
Как с помощью echo вывести могострочный текст типа :

строка1
строка2
строка3

именно в таком виде с переводами строки, а то echo не выводит по умолчанию перевод строки и выдаёт:

строка1 строка2 строка3


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Программирование Shell"  
Сообщение от phpcoder email(??) on 15-Окт-07, 12:40 
>Как с помощью echo вывести могострочный текст типа :

Двойные кавычки вам в помощь!


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Программирование Shell"  
Сообщение от madskull (ok) on 15-Окт-07, 12:50 
>Как с помощью echo вывести могострочный текст типа :
>
>строка1
>строка2
>строка3
>
>именно в таком виде с переводами строки, а то echo не выводит
>по умолчанию перевод строки и выдаёт:
>
>строка1 строка2 строка3

ну, это не проблема: echo "`cat 3.dat`"

проблема в том, что eval уже этого не поймет.
так что, придется менять на что-то вроде:
cat 2.dat 3.dat | while read str ; do eval echo $str; done


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Программирование Shell"  
Сообщение от Voblin on 15-Окт-07, 14:05 
Вобщем сделал так:

#!/bin/bash
cat > 4.dat < 2.dat
cat >> 4.dat < 3.dat
aaa="`cat 4.dat`"
echo "$aaa"
>4.dat echo "${aaa//'$a'/Путь1}"

aaa="`cat 4.dat`"
>4.dat echo "${aaa//'$b'/Путь2}"

т.к. у меня переменных с путями несколько штук, то так будет проще.


Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру