Когда Вы изменяете беспроводные настройки, необходимо удостовериться, что флажки "Available to all users" и "Connect automatically" включены, и это будет доступно всем автоматически. Ранние версии Администратора сети для некоторых систем не имели "Доступным всем пользователям", включил по умолчанию (Ваш мог бы быть одной из тех систем), и признаки, которые Вы описываете, точно поведение, которое, как предполагается, происходит с параметром конфигурации. Это было запутывающей настройкой по умолчанию для большинства людей, поэтому теперь значение по умолчанию должно иметь ее, включил (по крайней мере, это для Ubuntu).
Можно также проверить из командной строки, какими устройствами и соединениями управляет NetworkManager:
$ nmcli dev
DEVICE TYPE STATE
wlan1 802-11-wireless connected
eth1 802-3-ethernet connected
$ nmcli con
NAME UUID TYPE TIMESTAMP-REAL
Yak n Yeti b4e05828-e57e-4399-96aa-6cd988ee4975 802-11-wireless Thu 27 Dec 2012 07:30:19 AM PST
Настройки хранятся в /etc/NetworkManager/system-connections/
и Вы захотите удостовериться это autoconnect=true
и это любой пользователи, которых Вы хотите, перечислено permissions=user:whoever:root:;
или эквивалент "Доступного всем пользователям", который является permissions=[];
[connection]
id=Yak n Yeti
uuid=b4e05828-e57e-4399-96aa-6cd988ee4975
type=802-11-wireless
permissions=user:whoever:;
autoconnect=false
timestamp=1355439451
[802-11-wireless]
ssid=Yak n Yeti
mode=infrastructure
mac-address=24:77:05:FF:97:BC
security=802-11-wireless-security
[802-11-wireless-security]
key-mgmt=wpa-psk
wep-key-flags=1
psk-flags=1
leap-password-flags=1
[ipv4]
method=auto
[ipv6]
method=auto
awk -v n=3 '/<Car>/ && !--n {getline; print; exit}'
Или:
awk '/<Car>/ && ++n == 3 {getline; print; exit}'
Передать шаблон поиска как переменную:
var='<car>'
PATTERN="$var" awk -v n=3 '
$0 ~ ENVIRON["PATTERN"] && ++n == 3 {getline; print; exit}'
Сюда использование ENVIRON
вместо -v
как -v
разворачивает escape-последовательности обратной косой черты, и обратные косые черты часто находятся в регулярных выражениях (так должен был бы быть удвоен с -v
).
GNU awk
4.2 или выше позволяет Вам присвоить переменные, поскольку сильный ввел regexps. Пока его режим POSIX не включен (например, через $POSIXLY_CORRECT
переменная среды, можно сделать:
# GNU awk 4.2 or above only, when not in POSIX mode
gawk -v n=3 -v pattern="@/$var/" '
$0 ~ pattern && ++n == 3 {getline; print; exit}'
Вот жемчуг один:
perl -ne 'print && exit if $c==3; $c++ if /<Car>/;' file
С GNU grep
, можно также проанализировать его вывод как:
grep -A 1 -m 3 '<Car>' file | tail -n 1
От man grep
:
-A NUM, --after-context=NUM
Print NUM lines of trailing context after matching lines.
Places a line containing a group separator (--) between
contiguous groups of matches.
-m NUM, --max-count=NUM
Stop reading a file after NUM matching lines.
С GNU awk
можно сделать:
gawk -v RS='</Car>' 'NR==3 && $0=$2' inputFile
Вот простое решение для командной строки.
grep -F -A1 '<Car>' filename | grep -E -v '<Car>|--' | tail -n +3 |head -n +1
Если Вы изменяете значение +3 после tail
, можно указать любую энную строку.
Вот еще один способ с sed
:
sed -n '/<Car>/{x;/.\{2\}/{x;$!{n;p};q};s/.*/&./;x}' infile
Используется удерживаемое пространство для подсчета.
Каждый раз, когда он обнаруживает соответствие строки
, он e x
меняет буферы и проверяет, есть ли точно N-1 появления символа в буфере удержания. Если проверка прошла успешно, e x
изменится снова, а если не в последней строке, он вытянет строку n
ext, а p
удалит пространство шаблонов. затем q
uits.
В противном случае он просто добавляет еще один .
char в удерживаемое пространство, а e x
возвращается обратно.