WordPress.com jetpack

Saturday, July 20, 2019

'sed' for Search & Replace in Single or Multiple Files

sed stream editor - A Powerful Text Stream Editor

sed <options> 'search-text'/replace-text' <filename>

$ sed -i 's/AnanovaSitegeek/g' /home/ananova/index.php

This command would open index.php and line-by-line would replace all the occurrences of Ananova with Sitegeek.

Search & Replace in Vim

'-i' in-pace edit, i.e., no need to redirect the output from sed to new file
'g' global replacement to replace all occurrences once per line
Replacing nth occurrence
Use the '/1', '/2' instead of '/g' flags to replace the first or second occurrence of the pattern in a line.
's<num1>,<num2>' to specify the range, when the scale is determined 'g' option omitted

$ sed '1,3 s/AnanovaSitegeek/g' /home/ananova/index.php

The sed command replaces the lines with a range from 1 to 3.

'%' for the entire document

'$' indicates last line in the file

$ sed '2,$ s/AnanovaSitegeek/g' /home/ananova/index.php

The sed command replaces the text from the second line to the last line in the file.

Esc Press Shitft : and provide the following command to provide one tab before line


Parenthesize first character of each provide provided as on output of echo command through the pipe:

echo "Web Hosting Industry Demystified" | sed 's/\(\b[A-Z]\)/\(\1\)/g'

(W)eb (H)osting (I)ndustry (D)emystified

To replace the string on a specific line number

$ sed '3 s/AnanovaSitegeek/g' /home/ananova/index.php

The above sed command replaces the string only on the third line.

Deleting Lines from File

Delete the last line

$ sed '$d' index.php

Delete a particular line say n 

$ sed 'nd' index.php

$ sed '3d' filename.txt

Delete line from range x to y

$ sed 'x,yd' index.php

$ sed '12,15d' index.php

Delete from nth to the last line

$ sed 'nth,$d' index.php

$ sed '10,$d' filename.txt

Delete pattern matching line

$ sed '/pattern/d' index.php

$ sed '/flowentry/d' index.php

No comments:

Post a Comment