On The Insider: Are You Ready for 90210?

Tech Tip: Modify Linux files with Perl

Tags: Guest Contributor, Linux Tips Newsletter

  • Save
  • Print
  • Digg This
  • 0

Takeaway: Here's how to modify Linux files with Perl.

When you're writing scripts or installation programs that need to modify data in specific files, the ability to automatically change files can be a very useful thing. For example, this ability comes in handy when you have a file from which you need to remove a certain string or word, when you're changing an IP address in a number of files, and so on.

Manually modifying these files can be time-consuming, especially if it's a repetitive task. However, you can use the Perl program to accomplish this. All Linux distributions come with this program. Execute the following:

$ perl -pi -e 's|[old_string]|[new_string]|g' [file]

The strings can be simple words or regular expressions. Let's say you changed the location of a directory (e.g., from /var/spool/mail to /var/spool/messages), and you want to change every file in the /etc directory to reflect the path change. Execute the following:

$ find /etc -type f| xargs perl -pi -e 's|\/var\/spool\/mail|\/var\/spool\/messages|g'

In this example, we use find and xargs to ensure that the system only runs the command against regular files--not accidentally against directories or other file types. This also walks the /etc directory tree and will recursively change all files.

We've written the paths as \/var rather than /var because we need to escape the / character, which we can also use as a delimiter in the Perl expression. (Instead of using |, you can also use /, #, and @ as delimiters.)

To remove a word from an entire file, execute the following:

$ perl -pi -e 's|myword||g' file

This basically replaces "myword" with nothing. (Note that there's no space between the second and third delimiters.)

Using Perl in this fashion, you can get extremely creative when modifying configuration files or any other type of data. Think of it as an automatic search-and-replace function.

  • Save
  • Print
  • Digg This
  • 0

What do you think?

Article Categories

Security
Security Solutions, IT Locksmith
Networking and Communications
E-mail Administration NetNote, Cisco Routers and Switches
CIO and IT Management
Project Management, CIO Issues, Strategies that Scale
Desktops, Laptops & OS
Windows 2000 Professional, Microsoft Word, Microsoft Excel, Microsoft Access, Windows XP,
Data Management
Oracle, SQL Server
Servers
Windows NT, Linux NetNote, Windows Server 2003
Career Development
Geek Trivia
Software/Web Development
Web Development Zone, Visual Basic, .NET

Ultraportables

advertisement
Click Here