Ich verwende das folgende Skript zum Suchen und Ersetzen der veralteten Funktionen in einer Datei durch die neueren.Skript zum Suchen und Ersetzen veralteter Funktionen
5 for strFile in `ls deprecated_functions_search_and_replace.txt `
6 do
7 sed "s/ereg_replace[^\(]*(\([^,]*\),/preg_replace\1('#'.\2.'#',/g" $strFile > temp_file
8 mv $strFile $strFile".bakup"
9 mv temp_file $strFile
10
11 sed "s/eregi[^\(]*(\([^,]*\),/preg_match\1('#'.\2.'#i',/g" $strFile > temp_file
12 mv $strFile $strFile".bakup"
13 mv temp_file $strFile
14
15 sed "s/ereg[^\(]*(\([^,]*\),/preg_match\1('#'.\2.'#',/g" $strFile > temp_file
16 mv $strFile $strFile".bakup"
17 mv temp_file $strFile
18
19 sed "s/split[^\(]*(\([^,]*\),/preg_split\1('#'.\2.'#',/g" $strFile > temp_file
20 mv $strFile $strFile".bakup"
21 mv temp_file $strFile
22
23 sed "s/mysql_escape_string/mysql_real_escape_string/g" $strFile > temp_file
24 mv $strFile $strFile".bakup"
25 mv temp_file $strFile
26
27 sed "s/set_magic_quotes_runtime(0)/\/\/set_magic_quotes_runtime(0)/g" $strFile > temp_file
28 mv $strFile $strFile".bakup"
29 mv temp_file $strFile
30
31 sed "s/ini_get('safe_mode')/false/g" $strFile > temp_file
32 mv $strFile $strFile".bakup"
33 mv temp_file $strFile
34
35 sed "s/session_register('\(.*\)')/$_SESSION['\1']=$\1/g" $strFile > temp_file
36 mv $strFile $strFile".bakup"
37 mv temp_file $strFile
38
39 sed "s/session_unregister('\(.*\)')/$_SESSION['\1']=''/g" $strFile > temp_file
40 mv $strFile $strFile".bakup"
41 mv temp_file $strFile
42
43 done
Allerdings, wenn ich dieses Skript ausführen ich einen Fehler bin immer sagen:
sed: -e expression #1, char 60: invalid reference \2 on `s' command's RHS
sed: -e expression #1, char 52: invalid reference \2 on `s' command's RHS
sed: -e expression #1, char 50: invalid reference \2 on `s' command's RHS
sed: -e expression #1, char 51: invalid reference \2 on `s' command's RHS
Ich bin nicht in der Lage, herauszufinden, was falsch gehen. Jemand bitte hilf mir. Grüße.
sed sagt Ihnen, dass Sie '\ 2' verwenden, wenn Sie nur 1 Paar aufnehmende Klammern haben. –