Bash - Замена случайного числа между кавычками

Чтобы настроить сеть, отредактируйте файл /etc/rc.conf , добавив следующую строку (для настройки сети при запуске) :

wlans_ath0="wlan0"
ifconfig_wlan0="WPA SYNCDHCP"

Создать интерфейс wlan:

ifconfig wlan0 create wlandev ath0

Поиск точек доступа:

ifconfig wlan0 up scan

Создайте файл конфигурации /etc/wpa_supplicant.conf со следующим содержимым:

network={
ssid="your_ssid"
psk="your_password"
}

Подключиться:

К connect необходимо перезапустить сетевую службу:

service netif restart

После перезапуска сетевой службы Wi-Fi должен работать.

Также вы можете подключиться через wpa_supplicant :

wpa_supplicant -i wlan0 -c /etc/wpa_supplicant.conf
2
04.01.2017, 13:49
2 ответа

Синтаксис, который вы ищете, следующий sed -e 's/\(scale=\)"[0-9]\+\(\.[0-9]\+\)\?"/\1"'"$replacement_number"'"/'. Поисковый regex в деталях:

\(scale=\)        the literal string scale=, remembered as \1
"                 opening double quote
[0-9]\+           one or more digits
\(\.[0-9]\+\)\?   optionally, a period followed by one or more digits
"                 closing double quote
3
27.01.2020, 22:03

Это более простое и обобщенное решение. Расширенный синтаксис sed ( -e ) и обратные ссылки не используются для этого решения.

Это заменяет все, что находится в двойных кавычках, на число $ n .

Базовая команда sed выглядит следующим образом:

s/scale="[^"]*"/scale="$n"/

Выражение [^ "] * соответствует нулю или более символов без двойных кавычек. После цитирования ] shell команда выглядит так:

sed "s/scale=\"[^\"]*\"/scale=\"$n\"/"

Если вы хотите изменить только значения шкалы , которые содержат только числа и десятичные точки, вы можете использовать что-то вроде этого:

s/scale="[.0-9]*"/scale="'$n"/

Обычно есть сделка выключено между проверкой ввода и удобочитаемостью и удобством обслуживания.

0
27.01.2020, 22:03

Теги

Похожие вопросы