Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/79: Рейтинг темы: голосов - 79, средняя оценка - 4.94
21 / 21 / 2
Регистрация: 29.06.2009
Сообщений: 283

Нужно взять некое значение в файле и присвоить переменной

30.08.2009, 02:44. Показов 15250. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ниже пример ( не надо обсуждать задачу меня интересует немного другое)
На основе примера рассказываю.
Получаю я значение
Bash
1
cat $temp_file | awk '{print "Goup "$1}'
Как его присвоить некой переменной? для дальнейшей обработки? быть может я тогда избавлюсь от файла!

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/local/bin/bash
if [ $# -eq 1 ] ; then
usr_group=$1
temp_file=/tmp/rep.tmp
repquota -a | grep $usr_group >$temp_file
echo "Block  limits"
cat $temp_file | awk '{print "Goup "$1}'
cat $temp_file | awk '{print "Used "$3}'
cat $temp_file | awk '{print "Soft "$4}'
cat $temp_file | awk '{print "Hard "$5}'
echo "------------"
echo "File  limits"
cat $temp_file | awk '{print "Used "$7}'
cat $temp_file | awk '{print "Soft "$8}'
cat $temp_file | awk '{print "Hard "$9}'
rm $temp_file
else
echo "ERROR"
echo "$0 user_group"
echo " Bolee udobniy prosmotr repquota"
exit 1
fi
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.08.2009, 02:44
Ответы с готовыми решениями:

Как присвоить переменной bash значение, считанное с диска
Попробую так: SIGN=$(dd if=/dev/hda skip 446 bs=1 count=1) Просмотр значения переменной с помощью echo "$SIGN" ...

Нужно переменной присвоить значение счетчика записей.
Человеки, есть следующая проблема. У меня в Аксесе есть форма, ну и в ней стандартно есть счетчик записей, так вот мне нужно переменной...

По нажатию клавиши нужно присвоить переменной значение
как сказать компьютеру, что по нажатию клавиши нужно присвоить оператору значение, кароче типа этого: //если нажали на кнопку, то...

10
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
30.08.2009, 12:27
Да как обычно:
Code
1
2
3
4
5
6
[odip@work]$ aaa=`cat ccc.txt`
[odip@work]$ echo $aaa
tttttttt
[odip@work]$ cat ccc.txt
tttttttt
[odip@work]$
Добавлено через 2 минуты
А воообще все это на perl пишется элементарно.
0
21 / 21 / 2
Регистрация: 29.06.2009
Сообщений: 283
30.08.2009, 12:40  [ТС]
А я не знаю Perl а вот bash как то ближе
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
30.08.2009, 13:23
Если и в дальнейшем будешь иметь дело с shell и UNIX, то настройчиво рекомендую изучить perl.
Я тоже мучил sed, grep, find, sort, ls, less, uniq, awk, shell (не bash). Писал скрипты даже.
Пока не стал учить perl.
perl заменяет все эти утилиты вместе взятые, да еще и писать легче - не приходиться в сложных случах придумывать как составить конвеер.
Хотя конечно в тривиальных случаях до сих пор использую перечисленные выше утилиты.
0
21 / 21 / 2
Регистрация: 29.06.2009
Сообщений: 283
30.08.2009, 13:44  [ТС]
я bash освоил более менее, как самый доступный. Админю свой сервер со своим сайтом и приходится устраивать конвееры. те утилиты что ты описал использую каждый день но к сожалению не знаю их на 5+ знаю ровно то что нужно мне.

perl пока тяжел мне для восприятия. Просто я как то пытался тот же awk заменить на перле и короче у меня ни как не вышло. Пришлось юзать awk. awk использую так awk '{print "ip "$1 }' вывод столбца ( это маленький пример).
Те же создания бд с созданием пользователя в БД с определенными правами на сервера или добавления хоста в apach я написал на bash за 30 минут или ротацию логов и bzip2 причем все это автоматически подхватывает вновь созданные хосты. Но вот на perl вообще даже не представляю как это сделать. : (
0
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
30.08.2009, 13:53
У perl-а есть ключик, когда он работает как awk.
Файл in.txt
Code
1
2
3
a0 a1 a2 a3
b0 b1 b2 b3
c0 c1 c2 c3
Пример на perl
Perl
1
2
3
4
5
#!/usr/bin/perl
while (<>) {
    @l= split( / +/, $_ );
    print "ip=", $l[1], "\n";
}
Вывод:
Code
1
2
3
4
> perl perl-awk.pl in.txt
ip=a1
ip=b1
ip=c1
1
21 / 21 / 2
Регистрация: 29.06.2009
Сообщений: 283
30.08.2009, 13:59  [ТС]
Пример на perl
Perl
1
2
3
4
5
#!/usr/bin/perl
while (<>) {
    @l= split( / +/, $_ );
    print "ip=", $l[1], "\n";
}
Я извиняюсь, можно комментарии сделать попробую разобрать пример и догнать. Может все же дойдет до меня perl.
0
 Аватар для Gravity
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
30.08.2009, 15:36
Пока odip'a нет, смею прокомментировать пример выше.
Code
1
while (<>)
В качестве параметра скрипту передается имя файла, тот его открывает и в цикле просматривает каждую строку файла.
Code
1
@l= split( / +/, $_ );
Строка (которая находится в спец. переменной $_) разделяется сплитом по пробелам, т.о. массив @l будет содержать (a0, a1, a2, a3) (для первой строки файла in).
Code
1
print "ip=", $l[1], "\n";
А здесь просто выводим элемент массива $l[1].
0
21 / 21 / 2
Регистрация: 29.06.2009
Сообщений: 283
30.08.2009, 15:42  [ТС]
Цитата Сообщение от Gravity Посмотреть сообщение
/ +/,
вот это чего такое?
0
 Аватар для Gravity
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
30.08.2009, 15:43
Цитата Сообщение от delphi Посмотреть сообщение
вот это чего такое?
Регулярное выражение. После пробела стоит "+", что означает, что пробел может встречаться от 1 и более раз.
1
Эксперт С++
 Аватар для odip
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
30.08.2009, 18:12
Вообще начинать нужно с классического примера
Perl
1
2
3
4
5
6
7
8
9
10
#!/usr/bin/perl
 
use 5.8.8; use strict; use warnings;
# использовать perl версии 5.8.8 и выше
# использовать строгий синтаксис - то есть переменные требуют предварительного описания
# включить все предупреждения
 
print "Hello, world !\n"; # вывод строки
 
exit 0; # выход - не обязательно писать
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.08.2009, 18:12
Помогаю со студенческими работами здесь

Нужно view1.meaningB присвоить значение переменной space
Доброго времени суток! Возникла проблема, связанная с функцией atoi. Дело в том, что мне нужно view1.meaningB присвоить значение переменной...

Нужно проверить, содержится ли некое заданное значение в определенном наборе данных
Есть набор некоторых значений. Нужно проверить, содержится ли некое заданное значение в этом наборе, следовательно нужно что-то вроде...

Присвоить значение наименьшего элемента массива переменной М1, номер строки, где находится этот элемент, - переменной Т, номер столбца - переменной С
Массив С действительных чисел имеет 5 строк и 11 столбцов. Присвоить значение наименьшего элемента массива переменной М1, номер строки, где...

Как присвоить значение переменной, исходя из значения другой переменной?
Всем привет. Нужна помощь. Есть переменная, например &quot;month&quot; которая может принимать значения от 01 до 12, и переменная...

По значению переменной x (названию сезона) присвоить переменной t соответствующее значение и вывести на экран
Дано описание: Type сезон= (зима, весна, лето, осень); Var x: сезон; t: (тепло, жарко, холодно); По значению переменной x (названию...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru