Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 向多个文件中的现有哈希脚本添加更多哈希_Bash_Shell_Sed - Fatal编程技术网

Bash 向多个文件中的现有哈希脚本添加更多哈希

Bash 向多个文件中的现有哈希脚本添加更多哈希,bash,shell,sed,Bash,Shell,Sed,我有一些php脚本文件,它们使用md5散列存储MySQL的密码 下面是该php文件中的一些现有查询代码 some query part....,MD5('$pass'),.....some query part 有些脚本使用小写md5 some query part....,md5('$pass'),.....some query part 我的目标是在现有代码中添加另一个哈希,如sh1 因此,预期的查询脚本应该如下所示 some query part....,sh1(MD5('$pass'

我有一些php脚本文件,它们使用md5散列存储MySQL的密码

下面是该php文件中的一些现有查询代码

some query part....,MD5('$pass'),.....some query part
有些脚本使用小写md5

some query part....,md5('$pass'),.....some query part
我的目标是在现有代码中添加另一个哈希,如sh1

因此,预期的查询脚本应该如下所示

some query part....,sh1(MD5('$pass')),.....some query part
最后,当前md5是小写还是大写并不重要

我试着用sed替换那些文件,但没有成功

sed -i 's/md5\(.*\)/sha1\(md5\(.*\)\)/gI' *.php
有人能帮我吗

谢谢

您可以使用

sed -i 's/\bmd5([^()]*)/sha1(&)/gI' *.php
POSIX BRE表达式匹配:

  • \b
    -单词边界
  • md5(
    )-一个
    md5(
    子字符串
  • [^()]*
    -0个或更多字符,而不是
  • -a
    字符
sha1(&)
替换模式替换匹配的woth
sha1(
),然后替换匹配值,然后替换

见:

s='some query part....,MD5('"'"'$pass'"'"'),.....some query part
some query part....,md5('"'"'$pass'"'"'),.....some query part'
sed 's/\bmd5([^()]*)/sha1(&)/gI' <<< "$s"
some query part....,sha1(MD5('$pass')),.....some query part
some query part....,sha1(md5('$pass')),.....some query part