позволяет сказать, что я использовал grep и разрезал для хранения данных в переменных. Мне нужно получить первые второе и третье значения каждой переменной, объединенной друг с другом. Я думаю, мне нужно использовать массивы для достижения этого, но я не знаю, как это сделать. например, если $ one содержит b c, а $ two имеет значение 1 2 3, а три три x x z, я хочу объединить, чтобы мой вывод выглядел как a1x b2y c3z. как я сказал, я думаю, что мне нужно сохранить мой grep/cut вывод в массив, но я не уверен, как это сделать. Благодарю.bash: объединение первого значения нескольких переменных
ответ
В чистом Баш, вы можете сделать что-то вроде этого:
v1="a b c"
v2="1 2 3"
v3="x y z"
for v in v1 v2 v3; do
read p1 p2 p3 <<< ${!v}
a1="$a1$p1"
a2="$a2$p2"
a3="$a3$p3"
done
echo $a1
echo $a2
echo $a3
Последние три отголоски выход:
a1x
b2y
c3z
спасибо. Я получил его, чтобы работать с массивами, хотя, так как я разместил вопрос. – user1248799
Прохладный, рад, что все получилось! –
Вы можете использовать sed
, tr
и т.д., чтобы перевести ' '
на '\n'
.
Затем используйте paste
, чтобы объединить их по вертикали.
$ v1="a b c"
$ v2="1 2 3"
$ v3="x y z"
$ paste <(tr ' ' '\n' <<<$v1) <(tr ' ' '\n' <<<$v2) <(tr ' ' '\n' <<<$v3) | tr -d '\t'
a1x
b2y
c3z
Или
$ paste <(echo "${v1// /$'\n'}") <(echo "${v2// /$'\n'}") <(echo "${v3// /$'\n'}") | tr -d '\t'
a1x
b2y
c3z
Примечание: Если вы сохраните их в отдельных файлах, будет гораздо проще.
Что делают 3 <символы после \ n? – user1248799
'<<<' is [Here Strings] – kev
Другим решением в чистом Баш с использованием массива:
$ arr=($v1 $v2 $v3)
$ for ((i=0; i<3; i++)); do
for ((j=i; j<${#arr[@]}; j+=3)); do printf '%s' ${arr[j]}; done
echo
done
a1x
b2y
c3z
Pure оргии с использованием массива:
declare -a a=($v1 $v2 $v3)
echo "${a[0]}${a[3]}${a[6]}"
echo "${a[1]}${a[4]}${a[7]}"
echo "${a[2]}${a[5]}${a[8]}"
Это может работать для вас:
v1="a b c"
v2="1 2 3"
v3="x y z"
parallel --xapply echo {1}{2}{3} ::: $v1 ::: $v2 ::: $v3
a1x
b2y
c3z
- 1. Объединение нескольких переменных факторов
- 2. Печать нескольких переменных bash
- 3. Проверка значения нескольких переменных
- 4. bash: Присоединить содержимое нескольких переменных
- 5. bash способ установки нескольких переменных из функции
- 6. Объединение нескольких списков имен переменных в data.table?
- 7. Объединение строк на основе нескольких переменных
- 8. Объединение нескольких переменных - работа с POST
- 9. Объединение оставшихся аргументов за пределы первого N в bash
- 10. Частота значения для нескольких переменных?
- 11. Объединение нескольких переменных результатов в один список в Python
- 12. Объединение нескольких таблиц на основе значения
- 13. Объединение нескольких файлов MPG
- 14. Объединение звездочек в bash
- 15. Добавление переменных в bash
- 16. Объединение нескольких файлов в unix
- 17. Объединение нескольких векторов
- 18. Как найти объединение между массивом первого значения в рубин
- 19. Объединение нескольких файлов CSV
- 20. Объединение двух переменных CharSequence
- 21. объединение несколько двоичных переменных
- 22. Объединение данных/переменных jquery
- 23. Объединение переменных в функцию
- 24. Объединение двух контрольных переменных
- 25. Ошибка компиляции - объединение переменных
- 26. объединение двух переменных строки
- 27. Объединение переменных в таблице
- 28. Объединение переменных в строку
- 29. Powershell: Объединение переменных
- 30. Объединение двух переменных наборов
это задание домашнее задание ? – Eddie
Да, это домашнее задание. i grep файла и вырезать определенные символы из вывода grep. – user1248799