我已经安装了Asterisk,我有文件users.conf
我想创建一个可以list the usernames and their SIP number
的shell脚本
文件中列出了用户,如下所示:
[6001]
type=friend
host=dynamic
dtmfmode=rfc2833
disallow=all
allow=ulaw
fullname = John DOE
username = jdoe
secret=secret
context = work
你可以为此使用一些简单的正则表达式:
grep -E '[[0-9]+]|username' users.conf
这个输出可以吗?您也可以列出这些不带括号或用户名 = 部分。如果您需要更多帮助,请添加评论
使用
asterisk -rx "sip show users"
之后,如果需要,请使用 sed 命令重写输出。
sed '/^[/h;/^username/!d;G;s/.*= *(.*)n.(.*)]/1: 2/' users.conf
-
/^[/h
- 复制以[
(SIP 号码)开头的行以保存空间。 -
/^username/!d
- 如果行不以username
开头,请将其删除并转到下一步。否则(用户名行): -
G
- 将保留空间(保存 SIP 号码)附加到用户名行。 -
s/.*= *(.*)n.(.*)]/1: 2/
- 从组合行中提取用户名和号码,并以所需的输出格式重新组合它们。