根据第一行过滤掉,然后使用它来获取第二行的数据



我正在使用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/awknawk

这对

你有用吗

awk 'f&&/password/{print $2;exit}/user/&&$2==""user""{f=1}' file

相关内容

  • 没有找到相关文章

最新更新