添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
In my last articles I had shared the arguments with sed which can be used to perform case insensitive actions (search, replace..) in a file and to delete all blank lines from the file.
Before starting with some command examples let us take a file sample output where we want to perform our sed operation.
Sample File " /tmp/file " with below content
# Port rpc.statd should listen on.
STATD_PORT=662
Outgoing port statd should used. The default is port
# is random
STATD_OUTGOING_PORT=2020
Specify callout program
STATD_HA_CALLOUT="/usr/local/bin/foo"

Add content at the beginning of the line

Example 1
Add a " # " comment hash in the beginning of line containing " <span style="color: purple;">STATD_PORT</span> "
Solution

# sed '/STATD_PORT/ s/^/#/' /tmp/file
# Port rpc.statd should listen on.
#STATD_PORT=662
Outgoing port statd should used. The default is port
# is random
STATD_OUTGOING_PORT=2020
Specify callout program
STATD_HA_CALLOUT="/usr/local/bin/foo"

To do in place replacement

# sed -i '/STATD_PORT/ s/^/#/' /tmp/file
Example 2
What if the text to be matched in somewhere in the middle of the line
Here match "callout" and add a "#" comment hash in the beginning of the line
Solution

# sed '/callout/ s/^/#/' /tmp/file
# Port rpc.statd should listen on.
STATD_PORT=662
Outgoing port statd should used. The default is port
# is random
STATD_OUTGOING_PORT=2020
#Specify callout program
STATD_HA_CALLOUT="/usr/local/bin/foo"

To do in place replacement use below command

# sed -i '/callout/ s/^/#/' /tmp/file
Example 3
You can use the same command to add in some text or word in the beginning of the line of the matched pattern, just replace the "#" with "your text"
For eg
# sed '/callout/ s/^/your text /' /tmp/file
# Port rpc.statd should listen on.
STATD_PORT=662
Outgoing port statd should used. The default is port
# is random
STATD_OUTGOING_PORT=2020
your text Specify callout program
STATD_HA_CALLOUT="/usr/local/bin/foo"

Add content at the end of the line

Example 1
Add 'your text' at the end of the line which matches 'callout'

# sed '/callout/ s/$/ your text/' /tmp/file
# Port rpc.statd should listen on.
STATD_PORT=662
Outgoing port statd should used. The default is port
# is random
STATD_OUTGOING_PORT=2020
Specify callout program your text
STATD_HA_CALLOUT="/usr/local/bin/foo"
To do the same "in place" replacement

 # sed -i '/callout/ s/$/ your text/' /tmp/file
Example 2
Match any text starting with "STATD" and add "your text" at the end of all the matching lines

# sed '/^STATD/ s/$/ your text/' /tmp/file
# Port rpc.statd should listen on.
STATD_PORT=662 your text
Outgoing port statd should used. The default is port
# is random
STATD_OUTGOING_PORT=2020 your text
Specify callout program
STATD_HA_CALLOUT="/usr/local/bin/foo" your text
To do "in place" replacement

# sed -i '/^STATD/ s/$/ your text/' /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
Cross-Platform Development: Harnessing the Power of Kink 0.6.5 to Craft Applications Compatible with Linux and Beyond Data Backup Failure: 9 Reasons & Solutions Online Blackjack: The Game That Will Make You A Fortune 6 Best Practices For A Successful Cloud Backup