Вы сказали:
Итак, есть 2 разделителя. Одна разделяющая пары имя / значение (& amp;), а другая, разделяющая значение, формирует его имя (=).Ну, мы можем разделить пары имя / значение, используя & как IFS в переменные, и использовать удаление суффиксов / префиксов, чтобы освободить фактическое имя и возрастные значения.
$> cat post-parse.sh
#!/bin/bash
IFS='&' read PAIR1 PAIR2
# if necessary use these as well
# name_key=${PAIR1%%=*}
# age_key=${PAIR2%%=*}
name_val=${PAIR1##*=}
age_val=${PAIR2##*=}
echo $name_val $age_val
$> ./post-parse.sh
name=Serg&age=25
Serg 25
$>
Вы также сказали:
Итак, есть 2 разделителя. Одна из разделяющих пар имя / значение (& amp;), а другая, разделяющая значение, формирует его имя (=).
Однако упражнение состоит в том, чтобы построить массив из нескольких строк пары имени / значения , Входные данные могут поступать из любых файлов или другого источника.
#!/bin/bash
declare -A myArray
while read input_line ; # read input line by line
do
echo $input_line
IFS='&' read PAIR1 PAIR2 <<< $input_line # split in two with &
# name_key=${PAIR1%%=*}
# age_key=${PAIR2%%=*}
name_val=${PAIR1##*=}
age_val=${PAIR2##*=}
myArray[$name_val]=$age_val
done
# print out the array
for key in "${!myArray[@]}"
do
echo ${myArray[$key]} is $key
done
Если мы хотим хранить несколько пар ключ-значение, мы можем читать ввод строки за строкой (поэтому нет необходимости использовать sed чтобы избавиться от \n там), и применим ту же концепцию, что и я выше:
$> ./post-parse.sh << EOF
> name=John&age=25
> name=Jane&age=35
> EOF
name=John&age=25
name=Jane&age=35
25 is John
35 is Jane
, чтобы увидеть, какой кодек вы установили на ваш компьютер открытым «синаптических менеджер пакетов»> поиск «кодека»
ps: firefox медленнее в последнее время .. попробуйте chrome
apt-get update
apt-get install chromium
firefox не декодирует медиафайлы, это просто графический интерфейс к декодеру (libav)
, чтобы узнать, какой кодек, который вы установили на вашем компьютере, открыть «диспетчер синаптических пакетов»> найти «кодек»,
ps: firefox медленнее в последнее время .. попробуйте chrome
apt-get update
apt-get install chromium