Возможно? Да, но существуют разные методы в зависимости от варианта использования.
Предположение :Пакет debian не имеет эквивалентного пакета в официальном репозитории Arch (или дистрибутива Arch ).
Установитеyay
с помощью pacman
:
sudo pacman -S yay
Reason:yay — это помощник AUR , используемый для запроса и установки пакетов AUR . Если пакет debian уже был переупакован и опубликован в AUR кем-то другим.
Установите package_name
с помощью yay:
yay -S package_name
примечание:замените package_name
именем пакета debian из AUR . Он попытается установить зависимости самостоятельно, используя pacman
.
Предположение :Пакет Debian еще не был переупакован как пакет Arch в AUR.
Установитеdebtap
из AUR, используяyay
:
yay -S debtap
Создайте эквивалентный пакет, используяdebtap
:
sudo debtap -u
debtap package_name.deb
Установить с помощьюpacman
:
sudo pacman -U package_name.pkg
Этот метод пытается установить пакет с использованием формата упаковки debian в Arch, что не рекомендуется из-за возможной опасности повреждения вашей установки. При использовании этого метода рекомендуется подготовить образ аварийного диска Arch и резервную копию пользовательских данных/пространства .
Установитеdpkg
с помощьюyay
:
yay -S dpkg
Установите пакет Debian, используяdpkg
:
sudo dpkg -i package_name.deb
gawk '{ if ($0 = "APOLLO_KEY" ) { RS = "=" } ; { print $1 } }'
$0 = "APOLLO_KEY"
назначит строку $0
, сравнение — ==
. Я не думаю, что вы хотите изменить запись разделитель RS
здесь, но поле разделитель FS
(, и вам нужно сделать это с помощью -F
или -vFS=
в командной строке, поэтому он работает до того, как awk разделит строку ). Кроме того, здесь нет необходимости использовать явный оператор if , мы просто помещаем условие на весь блок кода.
Предполагая упрощенные данные (и определенно не использующие полный синтаксис оболочки! )это должно работать:
awk -F= '$1 == "APOLLO_KEY" { print $2 }'
Обратите внимание, что это прерывается, если значение содержит знаки =
, так как оно принимает только второе поле в строке.
Если вам нужно иметь дело с такими значениями, одно из решений — вручную удалить все до первого =
. Мы могли бы также передать имя поля вне кода, чтобы сделать его немного чище:
awk -v key=APOLLO_KEY -F= '$1 == key { sub(/^[^=]+=/, ""); print }'
awk -F "=" '{for(i=1;i<=NF;i++){if($i ~ /APOLLO_KEY/)print $(i+1)}}' filename
выход
service:abcd