Получить значение
Добавлено: 2009-01-06 16:46:59
Нужно на bash с файла login.conf выдергнуть значение SERVER_ID=
Кто подскажет как оно делается?
Кто подскажет как оно делается?
Иногда, правильный удар в бубен, приводит в чувство целое племя...
https://forum.lissyara.su/
Да вот стандартный файл /etc/login.conf В нем есть строка:lissyara писал(а):пример файла
generik писал(а):Да вот стандартный файл /etc/login.conf В нем есть строка:
Код: Выделить всё
zg# cat 1.awk
#!/usr/bin/awk -f
{
if ( match($1, /^#/) ) next;
gsub(/^\s+/, "", $0);
if ( !$0 ) next;
a=a$0;
if (match($0, /\\$/) == 0)
{
gsub(/\\[\s\t]*/, "", a);
gsub(/:$/, "", a);
gsub(/::/, ":", a);
print a;
a="";
}
}
zg#
Код: Выделить всё
zg# ./1.awk /etc/login.conf
default:passwd_format=md5:copyright=/etc/COPYRIGHT:welcome=/etc/motd:setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES:path=/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin ~/bin:nologin=/var/run/nologin:cputime=unlimited:datasize=unlimited:stacksize=unlimited:memorylocked=unlimited:memoryuse=unlimited:filesize=unlimited:coredumpsize=unlimited:openfiles=unlimited:maxproc=unlimited:sbsize=unlimited:vmemoryuse=unlimited:priority=0:ignoretime@:umask=022
tandard:tc=default
xuser:tc=default
taff:tc=default
daemon:tc=default
news:tc=default
dialer:tc=default
root:ignorenologin:tc=default
russian|Russian Users Accounts:charset=KOI8-R:lang=ru_RU.KOI8-R:tc=default
zg#
без кода это только слова -))) чтобы это утверждать нужен код на авкlissyara писал(а):awk может.
человек не просил код.zg писал(а):без кода это только слова -))) чтобы это утверждать нужен код на авкlissyara писал(а):awk может.
lissyara писал(а):человек не просил код.
он просил нужного направления.
на вопрос как, должен быть ответ вот так -)))generik писал(а):Нужно на bash с файла login.conf выдергнуть значение SERVER_ID=
Кто подскажет как оно делается?
предполагает последующий пример с решением, потому что в противном случае никто не доказал, что авк действительно это можетlissyara писал(а):awk может.
в метке default:generik писал(а):Да вот стандартный файл /etc/login.conf В нем есть строка:
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K,FTP_PASSIVE_MODE=YES,SERVER_ID=00001:\
И там есть как бы ее правильно обозвать переменная SERVER_ID=00001.
Нужно найти и вот ети циферки что бы использовать дальше в скрипте
Код: Выделить всё
sed -n 's/\s*#.*//; /^\s*$/d; /default:/,/:.*:$/s/.*,SERVER_ID=\([[:digit:]]*\).*/\1/p' /etc/login.conf
Код: Выделить всё
sed -n 's/\s*#.*//; /^\s*$/d; s/.*,SERVER_ID=\([[:digit:]]*\).*/\1/p' /etc/login.conf
Код: Выделить всё
#! /bin/sh
id=$(sed -n 's/\s*#.*//; /^\s*$/d; /default:/,/:.*:$/s/.*,SERVER_ID=\([[:digit:]]*\).*/\1/p' /etc/login.conf)
Код: Выделить всё
#! /bin/sh
id=$SERVER_ID
Код: Выделить всё
#! /bin/sh
id=${SERVER_ID:-$(sed -n 's/\s*#.*//; /^\s*$/d; /default:/,/:.*:$/s/.*,SERVER_ID=\([[:digit:]]*\).*/\1/p' /etc/login.conf)}
Код: Выделить всё
#! /bin/sh
id=${SERVER_ID:-$(sed '#n
s/\s*#.*//
/^\s*$/d
/default:/,/:.*:$/ {
s/.*,SERVER_ID=\([[:digit:]]*\).*/\1/p
}' /etc/login.conf
)}
если только в метке default, то можно и не геммороитьсяГость писал(а):в метке default:
Код: Выделить всё
zg# awk '/^default:/,/[^#]+:\s*$/' /etc/login.conf | grep -Eo 'umask=[0-9]+'
umask=022
zg#