С Новым годом! Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.99/92: Рейтинг темы: голосов - 92, средняя оценка - 4.99
 Аватар для olimpikys
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182

Чтение\запись с\в файл

05.07.2012, 17:55. Показов 17544. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ув. форумчане помогите разобраться.
есть файл назовем его baza вида:
login : pass : ip : balans : model :и т.д
seg : 123 : 192.168.0.1 : : dell_3424:
den : 321 : 192.168.0.2 : : extrime :
Задача в следующем запускается скрипт берет первые 2 переменные первой строки подключается к статистике получает значение баланса и записывает в файл baza в переменную balans в первую строку
после чего считывает переменную model и на основании ее запускает следующий скрипт dell_3424,
в нем действия разные действия с использованием переменных с файла baza опять же с первой строки.
Короче говоря как сделать так чтоб запускался первый скрипт и работал с первой строкой, из первого скрипта запускается второй (в это время первый скрип должен ждать окончания выполнения второго скрипта) второй скрипт работает с первой строкой. после окончания выполнения второго скрипта первый скрипт переходит ко второй строке и делает тоже самое считывает и записывает все во вторую строку, когда запускается второй скрипт он должен тоже работать только со второй строкой, и т.д. до конца файла
Заранее благодарен!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.07.2012, 17:55
Ответы с готовыми решениями:

Чтение всего файла и запись в другой файл
В общем задача в том что бы построчно прочитать файл и записать его в другой, не скопировать... не подкинете простой пример ???

Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление)
Открыть текстовый файл в необходимом режиме (на чтение, на чтение и запись, на добавление). (В файле должно быть не менее 30 строк)....

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -> Vehicles -> Firetruck_0 В этой папке лежит файл формата .dat Что нужно сделать? ...

24
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
06.07.2012, 02:00
Цитата Сообщение от olimpikys Посмотреть сообщение
Задача в следующем запускается скрипт берет первые 2 переменные первой строки подключается к статистике получает значение баланса и записывает в файл baza в переменную balans в первую строку
Цитата Сообщение от olimpikys Посмотреть сообщение
после чего считывает переменную model и на основании ее запускает следующий скрипт dell_3424,
в нем действия разные действия с использованием переменных с файла baza опять же с первой строки.
какие именно действия ?

сделай так, чтобы первый скрипт заново читал изменившийся файл, переходя к нужной строке
обрабатывать выбранную строку файла можно через sed (выводить, редактировать)
0
 Аватар для olimpikys
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
06.07.2012, 17:40  [ТС]
Постараюсь выразится понятливей. Как сделать построчное чтение\запись из файла? при этом когда первый скрипт работает например с 1000ой строкой второй запустившийся скрипт должен тоже работать с 1000ой строкой. Первый скрипт читает\изменяет по очереди строки. так же и второй, только второй скрипт должен знать с какой строкой работает первый скрипт чтоб работать с ней же. Задавать нумерацию строки во втором скрипте не пройдет, потому что второй скрипт каждый раз может запускаться разный. (запускается второй скрипт на основании переменной из файла model) для каждой модели разный скрипт с разными командами но одними и теми же переменными по названию, а значение должно браться из тоже строки с которой работает первый

Добавлено через 3 минуты
через час прийду на работу покажу пример файла и второго скрипта

Добавлено через 1 час 51 минуту
Пример файла с которого будут браться переменные (разделитель можно использовать любой):
login: pass:ip:vlan:oid:balans:model: port:community:
adm:admin:192.168.0.1:100:1.3.6.1.2.1.17 .7.1.4.3.1.4:dell3424_24:002000:admin
sasha:getna:192.168.0.2:100:1.3.6.1.2.1. 17.7.1.4.3.1.4:dell3424_24:080000:sefga
и т.д

Второй скрипт:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/bash
balans1=-10.00 # переменная будет браться из файла
balans=$(echo $balans1 | sed s:"\."::) # удаляем точку из переменной баланс1 для использования в #сравнении
if [ $balans -gt 0 ]
then
snmp=`./hello` # создан файл в котором команда snmpget
ss="${snmp##*Hex-STRING:}" # сохраняем в переменную ss все что в переменной snmp после Hex-#STRING:
a=$(echo $ss | awk '{print $1"\t"$2"\t"$3}') # из полученной переменной со свича берем первые 3 #значения через пробел
b=$(echo $a | sed s:" "::\g) # удаляем все пробелы с переменной $a
echo "Значение со свича hex= $b"
hex=$b
port=000200 #переменная будет браться из файла
bin_port=$(echo "obase=2; ibase=16; $port" | bc)
echo "Порт пользователя в двоичном виде $bin_port"
bin=$(echo "obase=2; ibase=16; $hex" | bc)
echo "Значение со свича в двоичном виде $bin"
newhex=$(echo "obase=16; ibase=2; $bin + $bin_port" | bc) # сложить переменные и перевести в hex
newhex1=$(printf "%06X\n" $(echo "ibase=16; $newhex" | bc)) # если переменная меньше 6 символов #дописать в начало нули до получения 6 символов
proverka_na_0=$(echo ${hex:0:1}) #проверяем переменную hex на наличие 0 в пером символе
if [ $proverka_na_0  == 0 ]
then
snmpset -c adminn -v2c 192.168.0.20 1.3.6.1.2.1.17.7.1.4.3.1.2.100 x $newhex1
#из этой команды "admin" "192.168.0.20" "1.3.6.1.2.1.17.7.1.4.3.1.2." "100" все это будет браться из файла и подставляться
snmpset -c adminn -v2c 192.168.0.20 1.3.6.1.2.1.17.7.1.4.3.1.4.100 x $newhex1
echo "выполнилось then"
else
snmpset -c adminn -v2c 192.168.0.20 1.3.6.1.2.1.17.7.1.4.3.1.2.100 x $newhex
snmpset -c adminn -v2c 192.168.0.20 1.3.6.1.2.1.17.7.1.4.3.1.4.100 x $newhex
echo "выполнилось else"
fi
else
snmp=`./hello1` # создан файл в котором команда snmpget
ss="${snmp##*Hex-STRING:}" # сохраняем в переменную ss все что в переменной snmp после Hex-STRING:
a=$(echo $ss | awk '{print $1"\t"$2"\t"$3}')
b=$(echo $a | sed s:" "::\g)
echo "Значение со свича hex=$b"
hex=$b
port=000200
bin_port=$(echo "obase=2; ibase=16; $port" | bc)
echo "Порт пользователя в двоичном виде $bin_port"
bin=$(echo "obase=2; ibase=16; $hex" | bc)
echo "Значение свича в двоичном виде $bin"
newhex=$(echo "obase=16; ibase=2; $bin + $bin_port" | bc)
echo "сложенное значение $newhex"
newhex1=$(printf "%06X\n" $(echo "ibase=16; $newhex" | bc))
proverka_na_0=$(echo ${hex:0:1})
if [ $proverka_na_0 == 0 ]
then
snmpset -c adminn -v2c 192.168.0.20 1.3.6.1.2.1.17.7.1.4.3.1.2.200 x $newhex1
snmpset -c adminn -v2c 192.168.0.20 1.3.6.1.2.1.17.7.1.4.3.1.4.200 x $newhex1
echo " Выполнилось then"
else
snmpset -c adminn -v2c 192.168.0.20 1.3.6.1.2.1.17.7.1.4.3.1.2.200 x $newhex
snmpset -c adminn -v2c 192.168.0.20 1.3.6.1.2.1.17.7.1.4.3.1.4.200 x $newhex
echo "Выполнилось else"
fi
fi
Как сделать чтоб скрипт брал переменные из той строки с которой работает первый скрипт?

Добавлено через 10 минут
или для начала можно чуть проще.
Как сделать чтоб скрипт запустился взял нужные переменные из первой строки, это - ip: balans: oid: vlan : community: port
использовал их для выполнения, после того как выполнился взял переменные со второй строки и выполнил туже процедуру

Добавлено через 28 минут
можно подставлять переменные с файла таким образом
Bash
1
2
ip=$(cut -f3 -d: /bin/baza)
echo $ip
записывает в переменную $a с файла baza третью переменную через разделитель ":"
но это если бы была только одна запись (строка)
т.к их будет тысячи это не подходит

Добавлено через 6 часов 16 минут
сделал так:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash
baza=/bin/baza
while read line
do
port=$(echo $line |cut -d: -f3)
balans=$(echo $line | cut -d: -f2)
ip=$(echo $line | cut -d: -f1)
oid_vlan_old=$(echo $line | cut -d: -f4)
oid_vlan_old2=$(echo $line | cut -d: -f5)
oid_vlan_new=$(echo $line | cut -d: -f6)
oid_vlan_new2=$(echo $line | cut -d: -f7)
if [ $balans -ge 0 ] # если переменная положительная выполнить then иначе else
then
snmp=`./hello` # создан файл в котором команда snmpget
ss="${snmp##*Hex-STRING:}" # сохраняем в переменную ss все что в переменной snmp после Hex-STRING:
a=$(echo $ss | awk '{print $1"\t"$2"\t"$3}') # взять первые 3 значения через пробелы с переменной $ss
b=$(echo $a | sed s:" "::\g) # удалить все пробелы с переменной $a
echo "Значение со свича hex= $b"
hex=$b # переменной hex присваиваем полеченное и обработанное значение со свича
bin_port=$(echo "obase=2; ibase=16; $port" | bc) # переменную port переводим в двоичное значение
echo "Порт пользователя в двоичном виде $bin_port"
bin=$(echo "obase=2; ibase=16; $hex" | bc) # переменную hex переводим в двоичный вид
echo "Значение со свича в двоичном виде $bin"
newhex=$(echo "obase=16; ibase=2; $bin + $bin_port" | bc) # налаживаем значение переменной port на переменную hex
newhex1=$(printf "%06X\n" $(echo "ibase=16; $newhex" | bc)) # если значение переменной newhex не равняется 6 символам то дополнить в начало переменной нули до начала первого символа
echo "bez \"0\" $newhex"
echo "s \"0\" $newhex1"
proverka_na_0=$(echo ${hex:0:1}) # записываем первое значение переменной hex в переменную proverka_na_0 для избежания случая если первые 4 порта не находятся в vlan (в этом бы случае общитанное значение переменной newhex) выводилос в не правильном виде
if [ $proverka_na_0  == 0 ] # если переменная proverka_na_0 равна нулю выполнить then иначе else
then
snmpset -c adminn -v2c $ip $oid_vlan_old x $newhex1 # команда на перевод порта в 100 vlan с использованием переменной с дописанными нулями (делает порт тегированным)
snmpset -c adminn -v2c $ip $oid_vlan_old2 x $newhex1 # делает порт не тегированным
echo "выполнилось then"
else
snmpset -c adminn -v2c $ip $oid_vlan_old x $newhex
snmpset -c adminn -v2c $ip $oid_vlan_old2 x $newhex
echo "выполнилось else"
fi
else # переменная balans отрицательная
snmp=`./hello1` # создан файл в котором команда snmpget
ss="${snmp##*Hex-STRING:}" # сохраняем в переменную ss все что в переменной snmp после Hex-STRING:
a=$(echo $ss | awk '{print $1"\t"$2"\t"$3}')
b=$(echo $a | sed s:" "::\g)
echo "Значение со свича hex=$b"
hex=$b
bin_port=$(echo "obase=2; ibase=16; $port" | bc)
echo "Порт пользователя в двоичном виде $bin_port"
bin=$(echo "obase=2; ibase=16; $hex" | bc)
echo "Значение свича в двоичном виде $bin"
newhex=$(echo "obase=16; ibase=2; $bin + $bin_port" | bc)
echo "сложенное значение $newhex"
newhex1=$(printf "%06X\n" $(echo "ibase=16; $newhex" | bc))
proverka_na_0=$(echo ${hex:0:1})
echo "сложенное значение $newhex"
if [ $proverka_na_0 == 0 ]
then
snmpset -c adminn -v2c $ip $oid_vlan_new x $newhex1
snmpset -c adminn -v2c $ip $oid_vlan_new2 x $newhex1
echo " Выполнилось then"
else
snmpset -c adminn -v2c $ip $oid_vlan_new x $newhex
snmpset -c adminn -v2c $ip $oid_vlan_new2 x $newhex
echo "Выполнилось else"
fi
fi
done < "$baza"
И файл с которого считываются переменные :
Bash
1
2
3
4
5
6
7
8
192.168.0.20 : 34 : 080000 : 1.3.6.1.2.1.17.7.1.4.3.1.2.100 : 1.3.6.1.2.1.17.7.1.4.3.1.4.100 : 1.3.6.1.2.1.17.7.1.4.3.1.2.200 : 1.3.6.1.2.1.17.7.1.4.3.1.4.200:
192.168.0.20 : -23 : 040000 : 1.3.6.1.2.1.17.7.1.4.3.1.2.100 : 1.3.6.1.2.1.17.7.1.4.3.1.4.100 : 1.3.6.1.2.1.17.7.1.4.3.1.2.200 : 1.3.6.1.2.1.17.7.1.4.3.1.4.200 :
192.168.0.20 : -22 : 020000 : 1.3.6.1.2.1.17.7.1.4.3.1.2.100 : 1.3.6.1.2.1.17.7.1.4.3.1.4.100 : 1.3.6.1.2.1.17.7.1.4.3.1.2.200 : 1.3.6.1.2.1.17.7.1.4.3.1.4.200 :
192.168.0.20 : 231 : 010000 : 1.3.6.1.2.1.17.7.1.4.3.1.2.100 : 1.3.6.1.2.1.17.7.1.4.3.1.4.100 : 1.3.6.1.2.1.17.7.1.4.3.1.2.200 : 1.3.6.1.2.1.17.7.1.4.3.1.4.200:
192.168.0.20 : 32 : 008000 : 1.3.6.1.2.1.17.7.1.4.3.1.2.100 : 1.3.6.1.2.1.17.7.1.4.3.1.4.100 : 1.3.6.1.2.1.17.7.1.4.3.1.2.200 : 1.3.6.1.2.1.17.7.1.4.3.1.4.200 :
192.168.0.20 : 43 : 004000 : 1.3.6.1.2.1.17.7.1.4.3.1.2.100 : 1.3.6.1.2.1.17.7.1.4.3.1.4.100 : 1.3.6.1.2.1.17.7.1.4.3.1.2.200 : 1.3.6.1.2.1.17.7.1.4.3.1.4.200 :
192.168.0.20 : -34 : 002000 : 1.3.6.1.2.1.17.7.1.4.3.1.2.100 : 1.3.6.1.2.1.17.7.1.4.3.1.4.100 : 1.3.6.1.2.1.17.7.1.4.3.1.2.200 : 1.3.6.1.2.1.17.7.1.4.3.1.4.200 :
192.168.0.20 : -43 : 001000 : 1.3.6.1.2.1.17.7.1.4.3.1.2.100 : 1.3.6.1.2.1.17.7.1.4.3.1.4.100 : 1.3.6.1.2.1.17.7.1.4.3.1.2.200 : 1.3.6.1.2.1.17.7.1.4.3.1.4.200 :
но в таком варианте придется делать для каждой модели свича отдельный файл с пользователями подключенных к такой модели
0
387 / 151 / 16
Регистрация: 12.05.2011
Сообщений: 450
06.07.2012, 19:27
Цитата Сообщение от olimpikys Посмотреть сообщение
Как сделать чтоб скрипт брал переменные из той строки с которой работает первый скрипт?
завести файл, в который первый скрипт будет писать номер своей строки, а второй будет его оттуда получать?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
07.07.2012, 05:40
Цитата Сообщение от olimpikys Посмотреть сообщение
Как сделать построчное чтение\запись из файла? при этом когда первый скрипт работает например с 1000ой строкой второй запустившийся скрипт должен тоже работать с 1000ой строкой.
там нет произвольного доступа к данным в файле
если ты символ прочитал, то на символ до него уже не можешь вернуться
а строки - это группы символов
поэтому, если у тебя скрипты обрабатывают одну и ту же строку в файле, то файл нужно перечитывать

Цитата Сообщение от olimpikys Посмотреть сообщение
Первый скрипт читает\изменяет по очереди строки. так же и второй, только второй скрипт должен знать с какой строкой работает первый скрипт чтоб работать с ней же.
первый скрипт должен изменять свои строки, а второй скрипт должен изменять свои строки (копии строк)

Цитата Сообщение от olimpikys Посмотреть сообщение
Задавать нумерацию строки во втором скрипте не пройдет, потому что второй скрипт каждый раз может запускаться разный.
сначала тебе надо поставить задачу
а уже потом думать, как должны быть сделаны скрипты

Цитата Сообщение от olimpikys Посмотреть сообщение
для каждой модели разный скрипт с разными командами но одними и теми же переменными по названию, а значение должно браться из тоже строки с которой работает первый
каждый скрипт должен быть самостоятельной единицей
ему подаются какие-то данные, и он их как-то обрабатывает


Цитата Сообщение от olimpikys Посмотреть сообщение
Code
1
2
adm:admin:192.168.0.1:100:1.3.6.1.2.1.17.7.1.4.3.1.4:dell3424_24:002000:admin
sasha:getna:192.168.0.2:100:1.3.6.1.2.1.17.7.1.4.3.1.4:dell3424_24:080000:sefga
это первоначальный файл ввода ?

задан первоначальный файл ввода
что получить ?
0
 Аватар для olimpikys
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
09.07.2012, 13:50  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
это первоначальный файл ввода ?
задан первоначальный файл ввода
что получить ?
Первый скрипт записует в первую переменную (она пуста изначально) цифирное значение.
затем считывает значение с поля model (например переменная dell3424_24) и на основании этой переменной запуститься следующий скрипт по указанному пути, первый скрипт должен дождаться выполнения второго скрипта прежде чем перейти к следующей строке.
Второй скрипт запустившись должен просто подставить значения в свои переменные с той строки с которой произошел запуск этого скрипта.
все переменные изначально известны кроме первой, которую будет заполнять первый скрипт
когда второй скрипт отработал первый переходит к следующей строке и выполняются повторные действия уже со второй строкой, и так до конца файла

Добавлено через 42 минуты
Цитата Сообщение от yekka Посмотреть сообщение
завести файл, в который первый скрипт будет писать номер своей строки, а второй будет его оттуда получать?
А можно с примером кода?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
10.07.2012, 02:01
Цитата Сообщение от olimpikys Посмотреть сообщение
Первый скрипт записует в первую переменную (она пуста изначально) цифирное значение.
затем считывает значение с поля model (например переменная dell3424_24) и на основании этой переменной запуститься следующий скрипт по указанному пути, первый скрипт должен дождаться выполнения второго скрипта прежде чем перейти к следующей строке.
Второй скрипт запустившись должен просто подставить значения в свои переменные с той строки с которой произошел запуск этого скрипта.
все переменные изначально известны кроме первой, которую будет заполнять первый скрипт
когда второй скрипт отработал первый переходит к следующей строке и выполняются повторные действия уже со второй строкой, и так до конца файла
и вот после этих всех действий что у тебя должно получиться в результате ?
0
 Аватар для olimpikys
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
10.07.2012, 08:36  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
и вот после этих всех действий что у тебя должно получиться в результате ?
Все пользователи у которых на счету 0 или меньше будут переведены в определенный vlan
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
10.07.2012, 09:07
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
login pass ip vlan oid balans model port community
 
adm:admin:192.168.0.1:100:1.3.6.1.2.1.17.7.1.4.3.1.4:dell3424_24:002000:admin
 
login:      adm
pass:       admin
ip:         192.168.0.1
vlan:       100
oid:        1.3.6.1.2.1.17.7.1.4.3.1.4
balans:     ?
model:      dell3424_24
port:       002000
community:  admin
чему равен баланс в этой записи ?

Цитата Сообщение от olimpikys Посмотреть сообщение
Все пользователи у которых на счету 0
счёт - это баланс ?
0
 Аватар для olimpikys
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
10.07.2012, 13:01  [ТС]
любой. может быть положительным или отрицательным (0 или меньше)
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
11.07.2012, 04:18
что в файле изначально в поле баланса ?
0
 Аватар для olimpikys
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
11.07.2012, 07:51  [ТС]
Цитата Сообщение от olimpikys Посмотреть сообщение
Первый скрипт записует в первую переменную (она пуста изначально) цифирное значение.
Я писал об этом
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
11.07.2012, 09:31
и что это значит ? что там пустое поле ?

Цитата Сообщение от olimpikys
Все пользователи у которых на счету 0 или меньше будут переведены в определенный vlan
каким образом устанавливается, что у пользователя на счету, если там пустое поле ?
0
 Аватар для olimpikys
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
11.07.2012, 10:06  [ТС]
Первый скрипт перед тем как обращаться к файлу, подключается к статистике получает переменную баланса и записывает ее в файл в первую переменную. Об этом я писал выше.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
11.07.2012, 10:44
Цитата Сообщение от olimpikys Посмотреть сообщение
подключается к статистике получает переменную баланса
что такое статистика ? каким образом он получает значение баланса для конкретной записи ?

то есть у тебя файл не создан, тебе сначала надо его заполнить из этой статистики, а потом обрабатывать
0
 Аватар для olimpikys
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
11.07.2012, 16:46  [ТС]
Цитата Сообщение от accept Посмотреть сообщение
что такое статистика ? каким образом он получает значение баланса для конкретной записи ?
Да не суть важно.. мы ушли от сути вопроса...
от того что переменная balans заполнена или не заполнена ход выполнения скрипта от этого не меняется. мне просто нужно узнать как сделать чтоб второй скрипт работал с той же строкой что и первый. работают оба скрипта с одним и тем же файлом...

Добавлено через 7 минут
Цитата Сообщение от accept Посмотреть сообщение
то есть у тебя файл не создан, тебе сначала надо его заполнить из этой статистики, а потом обрабатывать
Файл создан. в нем изначально просто первая переменная balans пуста, она заполняется при запуске первого скрипта, когда в первую строку записалась переменная баланса запускается второй, для которого уже все переменные будут известны из первой строки, после завершения работы 2го скрипта, первый переходит ко второй строке и для второго пользователя опять заполняет переменную баланса, и так до конца файла.
Я уже не раз это объяснил
Просто подскажите как сделать чтоб второй скрипт брал переменные с той строки, к которой первый скрипт обратился перед запуском второго скрипта....
Например первый скрипт работает с 3ей строкой, когда запустится второй скрипт он должен обратиться именной к третьей строке а не первой...
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
12.07.2012, 02:08
Цитата Сообщение от olimpikys Посмотреть сообщение
Да не суть важно.. мы ушли от сути вопроса...
то есть ты не знаешь, вот узнай сначала

Цитата Сообщение от olimpikys Посмотреть сообщение
от того что переменная balans заполнена или не заполнена ход выполнения скрипта от этого не меняется
ты не понимаешь, что никакого скрипта ещё нет ? что ты задачу не поставил и пытаешься сделать что-то, не знаешь что

Цитата Сообщение от olimpikys Посмотреть сообщение
Файл создан. в нем изначально просто первая переменная balans пуста, она заполняется при запуске первого скрипта
чем она заполняется, откуда берётся это значение ?

Цитата Сообщение от olimpikys Посмотреть сообщение
Я уже не раз это объяснил
ты написал код, который уже является лапшой, в которой ты уже сам не разбираешься
пройдёт месяц и ты вообще ничего в нём не разберёшь, потому что всё забудешь, что там и для чего делалось
0
 Аватар для olimpikys
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
12.07.2012, 08:19  [ТС]
Упрощу свой вариант. Есть файл вида
Bash
1
2
3
: Петров : Иван : Степаныч :
Сидоров : Владимер : Ильич :
Заиков: Михаил : Александрович
Первый скрипт должен вывести фамилию, после запускается второй, он должен вывести имя отчество, и так до конца файла.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
12.07.2012, 08:57
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[guest@localhost ~]$ f2()
> {
>     echo "#2"
>     echo "$line" | awk -F " : " '{print $2" : "$3}'
> }
[guest@localhost ~]$ 
[guest@localhost ~]$ f1()
> {
>     while read line; do
>         echo "#1"
>         echo "$line" | awk -F " : " '{print $1}'
>         echo "$line" | f2
>     done
> }
[guest@localhost ~]$ f1
Петров : Иван : Степаныч
Сидоров : Владимир : Ильич
Заиков : Михаил : Александрович
#1
Петров
#2
Иван : Степаныч
#1
Сидоров
#2
Владимир : Ильич
#1
Заиков
#2
Михаил : Александрович
[guest@localhost ~]$
Добавлено через 1 минуту
Цитата Сообщение от olimpikys Посмотреть сообщение
Упрощу свой вариант.
это тебе не поможет, потому что задача не поставлена
1
 Аватар для olimpikys
19 / 19 / 1
Регистрация: 03.04.2012
Сообщений: 182
13.07.2012, 10:34  [ТС]
А какой командой можно записать\перезаписать в переменную число? если можно с примером
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.07.2012, 10:34
Помогаю со студенческими работами здесь

Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран
1.Ввод с клавиатуры и запись в файл, чтение из файла и запись в массив, вывод из массива на экран 2.Ввод с клавиатуры и запись в массив,...

Запись в файл, чтение из файла, сохранени в файл, не работают эти функции
Здравствуйте. Не работает методы: Save() — сохранение фигуры (объекта) в файл, Load() — считывание фигуры (объекта) из файла. ...

Открытие и чтение файла, запись в файл, помещение результата в файл
Eсть алгоритм решения задачи. Не знаю только каким способом открыть файлы и как в них что-либо записывать (для файлов f1 и f2) и помещать...

Чтение/Запись в файл
Доброго всем времени суток. При написании курсовика пытаюсь вспомнить навыки С++, но дело идет туго. Необходима программа тестирования...

Чтение и запись в файл
Люди скиньте пожалуйста информацию по этой теме &quot;Чтение и запись в файл&quot; Очень надо


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru