Delete line - Perl one liner

Hi all,

I need a Perl one liner which prints a newline into a .txt file, only where the line starts with "/mediawiki-1.19.0/". It should add the newline to the line before.

My problem is, when I try to realize this (with my little knowledge :rolleyes: ) i come to the point where the // are making problems.

.txt file

------------
/mediawiki-1.19.0/index.php/RickJames !!add new line here!!
/mediawiki-1.19.0/index.php/Sabaton
some url
------------

I don't want it to sort or delete anything :).

Thanks in advance!

Smith

Hi Mr.Smith,

One way:

$ cat infile
/mediawiki-1.19.0/index.php/RickJames !!add new line here!!
/mediawiki-1.19.0/index.php/Sabaton
some url
$ perl -pe 's{\A(\Q/mediawiki-1.19.0\E)}{\n$1}' infile

/mediawiki-1.19.0/index.php/RickJames !!add new line here!!

/mediawiki-1.19.0/index.php/Sabaton
some url
1 Like

Or

perl -lpe 'print "" if m:\A/mediawiki-1\.19\.0/:' file
1 Like

Wow! Thank you very much! It's quiet hard for me to get known to this kind of stuff :slight_smile:

One more question: If I want to make a newline only behind every path that starts with:

/mediawiki-1.19.0/index.php/*

How would I realize this?

Thanks in advance :slight_smile:

Just change the pattern:

perl -lpe 'print "" if m:\A/mediawiki-1\.19\.0/index\.php/:' file