Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Операционные системы » UNIX » вычитывание строк из файла с помощью (bash)sh срипта

Модерирует : ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

mouser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вычитывание строк из файла с помощью (bash)sh срипта
 
если запустить

Код:
stat -c %i /home
stat -c %i /home/user

 
получим
4567
15877
 
мне эти числа нужно далее подставить в  строку типа
Код:
echo 4567, 15877

-------------------------------------------------------------------------
нужно вычитать из файла dirs.ini строки ... в файле будут строки  

Код:
/home
/home/user

 
которые в дальнейшем можно было запустить с командой stat -c %i  
и полученное значения использовать в коммандной строке
Код:
echo 4567, 15877

Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 14:43 30-09-2010
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mouser
ну и что вам мешает?
Код:
#!/bin/bash
file=`cat /home/alukardd/myfile`
for i in $file; do echo `stat -c %i $i`; done
соответственно /home/alukardd/myfile содержит построчно то, что вы просили
Код:
/home
/home/alukardd

не верю что гугл вам не помог - вы просто в него не ходили...

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 15:59 30-09-2010
mouser

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
спасибо ... искал через yandex .... но не нашел (((  
 
а как это добавить в строку  

Код:
echo inode= 4567, 15877

 
а если там ничего нет
Код:
echo inode= NULL

 
Добавлено:
у меня получилось только так  
 

Код:
echo inode= 4567, 15877,  

а в конце мне не нужна запитая ... да и не знаю как с if обработать если в файле ничего нет тогда вывести др. сообщение

Всего записей: 800 | Зарегистр. 10-11-2006 | Отправлено: 16:30 30-09-2010 | Исправлено: mouser, 16:42 30-09-2010
vlary



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mouser Если ваша задача носит не чисто теоретический, а практический характер, пользуйтесь Перлом. Там возможности обработки текстовых файлов намного богаче.


----------
Заслуженный SCOтовод, почетный SUNтехник и любитель Кошек

Всего записей: 17278 | Зарегистр. 13-06-2007 | Отправлено: 10:43 03-10-2010
keyhell



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
mouser Если ваша задача носит не чисто теоретический, а практический характер, пользуйтесь Перлом. Там возможности обработки текстовых файлов намного богаче.  

Ну и плюс стоит освоить  весь спект команд: cut/sed/awk/grep/egrep.

Всего записей: 1395 | Зарегистр. 10-08-2003 | Отправлено: 11:41 03-10-2010
SysCommander

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Код:

Код:
 
#!/bin/bash
file=`cat /home/alukardd/myfile`
for i in $file; do echo `stat -c %i $i`; done
 

 

 
Нельзя такое советовать.
 

Код:
 
$ touch test
$ echo 'foo' >> test
$ echo 'bar baz' >> test
$ touch test.sh
$ chmod +x test.sh
$ echo '#!/bin/bash' >> test.sh
$ echo 'file=`cat test`' >> test.sh
$ echo 'for i in $file; do echo $i; done' >> test.sh
$ ./test.sh
foo
bar
baz
 


Всего записей: 421 | Зарегистр. 20-07-2007 | Отправлено: 17:53 03-10-2010
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SysCommander
ваще не понял к чему это все?!
вам нравится заполнять файлы данных и писать скрипты прямо из командной строки - пожалуйста я до такого онанизма еще не дошёл... в худшем случае открою nano или mcedit.
Если вся штука в последней строчке скрипта, то это вообще смешно...

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 18:56 03-10-2010
SysCommander

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Это была наглядная безобидная демка моего заявления о том, что for i in `ls` и вариации являются принципиально неправильным подходом. Это общеизвестный bash pitfall. Плюс к тому переменные не экранированы, а это дополнительная вероятность граблей при наличии пробелов в строках.

Всего записей: 421 | Зарегистр. 20-07-2007 | Отправлено: 19:12 03-10-2010
Alukardd



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SysCommander
об экранировании не думал - сознаюсь - мб и косяк... привычка работать с корректными входными данными...
 
что касается pitfalls - да их знать необходимо, если скрипт должен работать долго, счастливо и не понятно где...

----------
Microsoft gives you windows, linuх gives you the whole house...
I've been using Vim for about 4 years now, mostly because I can't figure out how to exit it.

Всего записей: 6563 | Зарегистр. 28-08-2008 | Отправлено: 20:27 03-10-2010
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Операционные системы » UNIX » вычитывание строк из файла с помощью (bash)sh срипта


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru