我正在使用BASH,我正在尝试过滤掉散列密码。此密码属于用户"user",但密码位于下面列出的命令的以下行中。
我需要使用 AWK 过滤掉第一行和第二行,然后从第二行中提取散列密码。
我不知道从哪里开始!
干杯
以下是我尝试读取的文本文件包含的内容的示例:
user "user"
password "IIkku2FE3Q/8.0FWxRL0lE" hash2
console
member "administrative"
exit
user "user1"
password "kIieE9XarvNxuBum8dO2ek" hash2
access console ftp
console
member "administrative"
exit
exit
user "admin"
password "CdsDs3VDuklNg/Yau91HG." hash2
access console
console
no member "default"
exit
exit
我应该补充一点,参数"密码"IIkku2FE3Q/8.0FWxRL0lE"hash2"重复多次。我只需要过滤掉与用户"用户"关联的那个。
谢谢。
这个gnu awk
应该做:
awk -v RS="user " -F" '$2=="user" {print $4}' file
IIkku2FE3Q/8.0FWxRL0lE
你可以使用这个尴尬:
awk -v un="user" '{gsub(/"/, "")}
$1=="user" && $2==un{u=$2;next} u && $1=="password"{print u,$2;exit}' OFS=, pfile
user,IIkku2FE3Q/8.0FWxRL0lE
或尝试:
$ awk '$2 == usr{getline;print $2;exit}' FS=" usr="user" file
IIkku2FE3Q/8.0FWxRL0lE
如果要在Solaris/SunOS system
上尝试此操作,请将awk
更改为/usr/xpg4/bin/awk
、/usr/xpg6/bin/awk
或nawk
这对
你有用吗
awk 'f&&/password/{print $2;exit}/user/&&$2==""user""{f=1}' file