The OpenNET Project / Index page

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

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

"Чтение файла"  
Сообщение от BerkutST (??) on 04-Янв-06, 13:37 
Мне надо прочитать файл и использовать данные в скрипте, нашел такой код

cat config.txt| grep -v '^ *#'| while read param1 param2; do                    
        echo "$param1 - $param2"
done

Но как я понял полученные переменные не могут использоваться вне while?
Какие есть варианты чтобы читать файл, присваивать полученные данные переменной и использовать потом в любом месте скрипта?

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

 Оглавление

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


1. "Чтение файла"  
Сообщение от madskull (ok) on 10-Янв-06, 15:49 
>Мне надо прочитать файл и использовать данные в скрипте, нашел такой код
>
>
>cat config.txt| grep -v '^ *#'| while read param1 param2; do
>        echo "$param1 - $param2"
>
>done
>
>Но как я понял полученные переменные не могут использоваться вне while?
>Какие есть варианты чтобы читать файл, присваивать полученные данные переменной и использовать
>потом в любом месте скрипта?

Например, так:
while read param1 param2; do
  ...
done < <(cat config.txt| grep -v '^ *#')

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

2. "Чтение файла"  
Сообщение от BsDr (ok) on 26-Янв-06, 12:34 
Помогите, пожалуйста!
Я не могу прочитать строку йз файла, а очень хочется.
Кто-нибудь может внятно написать чтение одной строки из файла.
Ковыряние в вышейзложенном коде дало одно расстройство.
Интерпритатор - cshell.
Спасибо!
Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Чтение файла"  
Сообщение от chip email(ok) on 26-Янв-06, 15:06 
>Помогите, пожалуйста!
>Я не могу прочитать строку йз файла, а очень хочется.
>Кто-нибудь может внятно написать чтение одной строки из файла.
>Ковыряние в вышейзложенном коде дало одно расстройство.
>Интерпритатор - cshell.
>Спасибо!

cat /path/to/file | sed -ne 'Np'
cat /path/to/file | head -N | tail -1

, где N - номер строки.

"Упрощенный" вариант:
sed -ne 'Np' /path/to/file
head -N /path/to/file | tail -1

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

4. "Чтение файла"  
Сообщение от BsDr (ok) on 27-Янв-06, 13:02 
Спасибо, все заработало!
Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "Чтение файла"  
Сообщение от StarshiY (ok) on 27-Янв-06, 23:51 
>>Помогите, пожалуйста!
>>Я не могу прочитать строку йз файла, а очень хочется.
>>Кто-нибудь может внятно написать чтение одной строки из файла.
>>Ковыряние в вышейзложенном коде дало одно расстройство.
>>Интерпритатор - cshell.
>>Спасибо!
>
>cat /path/to/file | sed -ne 'Np'
>cat /path/to/file | head -N | tail -1
>
>, где N - номер строки.
>
>"Упрощенный" вариант:
>sed -ne 'Np' /path/to/file
>head -N /path/to/file | tail -1

Довольно практично, но у меня немного дугая задача. Скажите, как быть если нужно прочитать из файлика все строчки и каждую отдельно обработать. Можно ли это сделтаь на сшеле ?
В принципе я сейчас опишу проблему подробней. Мне например нужно обработаь файлик base.dat в котором примерно следующее содержание
---
192.168.0.12~2006.1.26-11:41~0~2006.1.26-12:41~~матерился матом~2006.01.26-11:41~ftp://kompik/sad01.jpg~
192.168.0.13~2006.1.26-11:41~0~2006.1.26-12:41~~тоже вел себя не прилично~~2006.01.26-11:42~ftp://kompik/sad01.jpg~
----
напримре утиликтками cat и cut я могу вывести те поля которые меня интересуют, но они выводятся в несколько строк сразу. т.е. я могу вывести поля ИП дату1, дату2. А дальше как с ними работать ? т.к. можно-ли в шеле работать с масивом ? если да то как ? или можно решить этот вопрос по другому средствами сшела ? В принципе меня интересует как можно читать из файла и писать в него, ток не потоком (все в подряд), а то, что меня интересует. Прошу прощения может я написал немного сумбурно. Да, ОС FreeBSD 4.11 использую /bin/sh

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

6. "Чтение файла"  
Сообщение от chip email(ok) on 30-Янв-06, 13:09 
>напримре утиликтками cat и cut я могу вывести те поля которые меня
>интересуют, но они выводятся в несколько строк сразу. т.е. я могу
>вывести поля ИП дату1, дату2. А дальше как с ними работать
>? т.к. можно-ли в шеле работать с масивом ? если да
>то как ? или можно решить этот вопрос по другому средствами
>сшела ?

man awk
man sed

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

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

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




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

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