Quantcast
Channel: GoLinuxHub
Viewing all articles
Browse latest Browse all 392

sed: Insert multiple lines before or after pattern match

$
0
0
Our requirement is to add multiple lines after a pattern is matched in a newline which can be before or after the match based upon the requirement



Below is our sample file /tmp/file
This is line one
This is line two
This is line three
This is line four

Here in we have to put below content
your text 1
your text 2
your text 3

as per below requirement

  1. one line before the string is matched
  2. one line after the string is matched

Example 1
Here we will add our content one line before the string is matched

Solution
# sed '/This is line two/i\your text 1\nyour text 2\nyour text 3' /tmp/file

This is line one
your text 1
your text 2
your text 3

This is line two
This is line three
This is line four

To do in place replacement
# sed -i '/This is line two/i\your text 1\nyour text 2\nyour text 3' /tmp/file
Example 2
Here we will add our content one line after the string is matched

Solution
# sed '/This is line two/a\your text 1\nyour text 2\nyour text 3' /tmp/file

This is line one
This is line two
your text 1
your text 2
your text 3

This is line three
This is line four

To do in place replacement
# sed -i '/This is line two/a\your text 1\nyour text 2\nyour text 3' /tmp/file
Example 3
You can add your content to a file for eg create a file /tmp/mydata with our content i.e.
your text 1
your text 2
your text 3

Now you can use below 'sed' command to append the content of "mydata" to /tmp/file"
# sed '/This is line two/r /tmp/mydata' /tmp/file

This is line one
This is line two
your text 1
your text 2
your text 3

This is line three
This is line four

To do in place replacement
# sed -i '/This is line two/r /tmp/mydata' /tmp/file

IMPORTANT NOTE:
Do not use this unless you are very sure the command will not impact anything else, it is always recommended to take a backup of such file where you plan to do in place replacement

Follow the below links for more tutorials

How to find the path of any command in Linux
How to configure a Clustered Samba share using ctdb in Red Hat Cluster
How to delete an iscsi-target from openfiler and Linux
How to perform a local ssh port forwarding in Linux
How to use yum locally without internet connection using cache?
What is umask and how to change the default value permanently?
Understanding Partition Scheme MBR vs GPT
How does a successful or failed login process works in Linux
How to find all the process accessing a file in Linux
How to exclude multiple directories from du command in Linux
How to configure autofs in Linux and what are its advantages?
How to resize software raid partition in Linux
How to configure Software RAID 1 mirroring in Linux
How to prevent a command from getting stored in history in Linux


Viewing all articles
Browse latest Browse all 392

Trending Articles