我有一堆 web.config 文件,每个文件都可能包含一个到数据库的连接字符串,如下所示:-
<add name="MyConnectionString" connectionString="Data Source=myserver;Initial Catalog=mydb;Persist Security Info=False;User ID=myuser;Password=secret" providerName="System.Data.SqlClient" />
我想要做的是 grepUser ID=myuser;Password=secret
部分如果存在的话。
我不能假设密码是连接字符串中的最后一个属性,它后面可能还有其他属性。所以基本上密码总是以"
or结尾;
。
使用 cygwin 我可以像这样搜索文件:-
find /cygdrive/c/inetpub/wwwroot/ -iname 'web.config' -printf '%p\0' | xargs -0 grep -i "password="
我将如何改进 grep 部分以仅检索用户名和密码而不是整行?
然后我可以通过管道将其输入sort -u
以获取正在使用的用户名和密码的唯一列表。