Perl-regex: Difference between revisions

From Bashlinux
Jump to navigationJump to search
Content deleted Content added
No edit summary
Manpaz (talk | contribs)
Redirected page to Regular expressions with Perl
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
#REDIRECT [[Regular_expressions_with_Perl]]
__NOTOC__
= Perl Regex =
== How to search and replace a word or phrase ==
* '''All matches'''
<pre><nowiki>
perl -pi -e 's/old string/new string/g' /path/to/the/file
</nowiki></pre>

This command line replaces all the instances of ''old string'' with ''new string'' that are found in `/path/to/the/file`. To replace only the first instance, remove the ''g ''at the end of the command.

* '''Conditional match'''
<pre><nowiki>
perl -pi -e 's/old string/new string/ if m/my unique string/' /path/to/the/file
</nowiki></pre>

This command line search only for the lines that matches ''my unique string'' and then replaces ''old string'' with ''new string''

* '''Search and replace using bash shell variables'''
<pre><nowiki>
sed -i -e s%old string%$BASH_VARIABLE% /path/to/the/file
</nowiki></pre>

In order to get this done is convenient to use `sed` instead `perl` command.
Always use `-i -e` instead `-ie`, if not you will end up with another file with the same name but with an `e` at the end of the file name.

== How to remove/replace a whole line ==

* '''Conditional match'''
<pre><nowiki>
perl -pi -e '$_="" if m/my unique string/' /path/to/the/file
</nowiki></pre>

This command line removes all the lines that matches ''my unique string''

== How to work with "sed" command ==
Attached is a file [[[Media:perl-regex$sed1line.txt]]] with a very useful list of sed commands called ''One-Liners for sed''. Updated version is always available at http://sed.sourceforge.net/sed1line.txt

Latest revision as of 23:55, 6 June 2015