devp
September 29, 2012, 6:05pm
1
Hello
I am trying to remove a line like <?php /*versio:2.05*/if (!defined('determinator')){ content goes here}?>
Now i want to scan all php file and remove that above line. I already write it but not working.
#!/bin/bash
find . -name '*.php' -exec grep -q determinator {} \; -print -exec perl -pi -w -e 's/\<\?php \/*versio:2.05;*/ if \(\!defined\(\$determinator.*\?\>//g' {} \;
Can somebody help to solve that.
Thanks
find . -name "*.php" -exec grep -q determinator {} \; -print -exec perl -pe 's#<\?php /\*versio:2\.05\*/if \(\!defined\(\$determinator\)\)\{.*?\}\?>##g' {} \;
mirni
September 30, 2012, 1:28am
4
Or perhaps more readably:
find . -name '*.php' | while read file ; do
perl -pi -e 's...' $file
done
Shouldn't perl -pie
be perl -pi -e
?
1 Like
mirni
September 30, 2012, 2:55am
6
Yes, thanks. As you can probably tell, my perl skills are not very developed... :-\
devp
September 30, 2012, 5:06am
7
Hi balajesuri
Thank you for your reply.
I run the code you provided
find . -name "*.php" -exec grep -q determinator {} \; -print -exec perl -pe 's#<\?php /\*versio:2\.05\*/if \(\!defined\(\$determinator\)\)\{.*?\}\?>##g' {} \;
But it just print me the entire file code
I want to update the file and remove the code i.e /*versio:2.05*/if (!defined('determinator')){ full content }
@devp : Please include the option -i to perl code.
...-exec perl -i -pe 's....