How to execute Grep in Perl.

[root@server1 ~]$ grep edge test_1 |sort|uniq >result.txt
[root@server1 ~]$more result.txt
edge-a-pas01.com 10.12.10.11
edge-b-pas02.com 10.12.10.12
edge-c-pas03.com 10.12.10.50
edge-d-pas03.com 10.12.10.10

how do we execute the above grep command using perl?

Thanks in advance.

Try using system() or exec().

e.g.

system("grep edge test_1 |sort|uniq >result.txt")

You can call OS commands in perl

$result=`grep edge test_1 |sort|uniq`;
print $result;

Coding this fully in perl with is a much larger endeavor....

Nope :smiley: (Red: grep; Blue: sort; Green: uniq)

$ cat test_1
cdge-b-pas02.com 10.12.10.12
cdge-c-pas03.com 10.12.10.50
edge-a-pas01.com 10.12.10.11
cdge-d-pas03.com 10.12.10.10
edge-c-pas03.com 10.12.10.50
edge-d-pas03.com 10.12.10.10
edge-b-pas02.com 10.12.10.12
cdge-a-pas01.com 10.12.10.11
$ perl -se '@a=sort grep { /edge/ && !$seen{$_}++ } <>; print @a' test_1
edge-a-pas01.com 10.12.10.11
edge-b-pas02.com 10.12.10.12
edge-c-pas03.com 10.12.10.50
edge-d-pas03.com 10.12.10.10
1 Like