Skip to Content
Shell Scripting: Expert Recipes for Linux, Bash, and More
book

Shell Scripting: Expert Recipes for Linux, Bash, and More

by Steve Parker
August 2011
Beginner to intermediate
600 pages
14h 29m
English
Wrox
Content preview from Shell Scripting: Expert Recipes for Linux, Bash, and More

Searching Strings

sed, the “stream editor,” provides a flexible search-and-replace facility, which can be used to replace text. For example, you can upgrade your datacenter in one fell swoop by replacing Wintel with Linux:

sed s/Wintel/Linux/g datacenter

sed is extremely powerful, but the basic search-and-replace functionality is also a feature of bash. Spawning additional processes takes time, which is exacerbated in a loop that runs 10, 100, or 1,000 times. Because sed is a relatively large program to fire up just to do some simple text replacement, using the builtin bash functionality is a lot more efficient.

The syntax is not too dissimilar from the sed syntax. Where $datacenter is the variable, and the mission is — again — replacing Wintel with Linux, the sed from the previous line of code would be equivalent to:

echo ${datacenter/Wintel/Linux}

Using Search and Replace

Consider a line in /etc/passwd for a user called Fred. This syntax can be used to change the pattern fred to wilma.

user='grep fred /etc/passwd'echo $user
fred:x:1000:1000:Fred Flintstone:/home/fred:/bin/bash
$ echo ${user/fred/wilma}
wilma:x:1000:1000:Fred Flintstone:/home/fred:/bin/bash
$

This has only changed the first instance of the word fred. To change all instances of fred to wilma, change the first / to a double // (or, as the documentation explains it, add an extra slash to the beginning of the search string). This replaces every instance of the search pattern with the new text.

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Linux Command Line and Shell Scripting Techniques

Linux Command Line and Shell Scripting Techniques

Vedran Dakic, Jasmin Redzepagic
Linux Shell Scripting Cookbook - Third Edition

Linux Shell Scripting Cookbook - Third Edition

Clif Flynt, Sarath Lakshman, Shantanu Tushar

Publisher Resources

ISBN: 9781118166321Purchase bookDownloads