Browsing all articles tagged with perl
Jan
4

Using Perl to Replace Text in Multiple Files

You can search and replace text inside multiple files using Perl. This is how you do it:

$ perl -i -pe 's/Windows/Linux/;' test*

This command will search for the word ‘Windows’ inside all files that begin with ‘test’. When it finds one, it will substitute it with the word ‘Linux’. This is useful if you have multiple files that contain the same text. Remember that you can use regular expressions to make searching flexible.

Dec
13

Tip: Remove Duplicate Lines in File Using Perl

Here is little nifty code I found to snip or remove duplicate lines in a file using Perl. An example of a file that has duplicate lines looks like this:

/home/index.php
/home/links.php
/home/index.php

The result we want to achieve is this:

/home/index.php
/home/links.php

And here goes the code:

$ftmp = 'file.txt';
my %match = ();
{
local @ARGV = ($ftmp);
local $^I = '.tmp';
while(<>){
$match{$_}++;
next if $match{$_} > 1;
print;
}
}

The original file, file.txt, has its duplicate lines removed.

Jul
14

Tip: Perl Script to Archive Log Files

This is a simple Perl script I wrote to search a given directory for *.log files, tag with the current date and archive them.

#!/usr/bin/perl

$DIR=”/var/www/html/sites/logs”;
$DATE=`date +%F`;
chomp $DATE;

@log = `/usr/bin/find $DIR -type f -name “*.log” `;

#print “\nRotating $DATE\n”;

foreach $log (@log) {
chomp $log;
$new_fn=”$log”.”-”.”$DATE”;
#print “$log $new_fn\n”;
`mv “$log” “$new_fn”`;

}

@raw=`/usr/bin/find $DIR -type f -name “*$DATE*”`;

foreach $raw (@raw) {
chomp $raw;
#print “$raw\n”;
`gzip -9 $raw`;

}

EDIT:

Modified version:

#!/usr/bin/perl

$DIR=”/var/www/html/sites/logs”;
$DATE=`date +%F`;
chomp $DATE;

@log = `/usr/bin/find $DIR -type f -name “*.log” `;

#print “\nRotating $DATE\n”;

foreach $log (@log) {
chomp $log;
$new_fn=”$log”.”-”.”$DATE”;
#print “$log $new_fn\n”;
`mv “$log” “$new_fn”`;
`gzip -9 $new_fn`;

}

Jun
26

Tip: Using dig to Show Nameservers

If the need to scan a list of domains arises, be it one or one hundred, I have one handy Perl script that will list all nameservers of a domain. This script uses the command dig, and filters and lists the result. Do note that Perl must be installed to do this script.

# vi mx_checker.pl

#!/usr/bin/perl

$file=$ARGV[0];
chomp($file);

@list = `cat $file`;

foreach $domain(@list) {
chomp($domain);
$ns = `dig ns $domain +short`;
chomp($ns);
$ns =~s/\n/\t/g;
print “$domain\t$ns\n”;
}

To make the script executable, change the permissions:

# chmod 700 mx_checker.pl

Then build the list of domains by listing it on a text file, one domain per file.

# vi domains.txt

google.com
yahoo.com
usautoparts.com

Now that the script and domain list is ready, it is time to execute the script:

# ./mx_checker.pl domains.txt

The nameservers will then be listed and can be piped to a text file, which can be exported to a spreadsheet as tab-separated values.

# ./mx_checker.pl domains.txt >> nameservers.xls

May
23

Tip: Perl script to Check Site Availability

System Administrators’s ‘common tasks’ are usually monitoring numbers of servers and network connections, and doing each monitoring is rather tedious. So to make our jobs and lives easier, we write scripts to automate repetitive tasks.

Since this is my Linux blog anyway, I decided to share one of scripts that I use in the office. This one is the Perl script that I use to check a specific site if the keyword is present, hence confirming that the site is up and accessible. read more

Powered by 1and1.comGlobat Webhosting Earn with Your BlogAdvertise @ PinoyTux

Search PinoyTux

Subscribe to Email Feeds

Enter Email Address:

Blog Lounge

Popular Posts

Recent Posts

Drop your Card Here

Recent Comments

Site Stats