Sed: Difference between revisions

From Anthony Pastor Wiki Notes - Verba volant, scripta manent
Jump to navigation Jump to search
No edit summary
No edit summary
Line 16: Line 16:
$ ./ovh-api-bash-client.sh --url "/ip/45.102.38.141" | sed -e 's/.*serviceName":"//' -e 's/"},"ip":.*$//'
$ ./ovh-api-bash-client.sh --url "/ip/45.102.38.141" | sed -e 's/.*serviceName":"//' -e 's/"},"ip":.*$//'
ns612429.ip-45-102-38.eu
ns612429.ip-45-102-38.eu
</syntaxhighlight>
=Delete pattern between two sections=
<syntaxhighlight lang="bash">
sed '/WORD1/,/WORD2/d' input
</syntaxhighlight>
=Extract from specific line to EOF=
<syntaxhighlight lang="bash">
sed -n '44519778,$p' input.log > output.log
</syntaxhighlight>
</syntaxhighlight>



Revision as of 17:31, 19 February 2016

Print a pattern between two (exclusive) words

echo "pattern" | sed -e 's/.*WORD1//' -e 's/WORD2.*$//'

Example:

$ ./ovh-api-bash-client.sh --url "/ip/45.102.38.141"
200 {"organisationId":null,"country":"fr","routedTo":{"serviceName":"ns612429.ip-45-102-38.eu"},"ip":"45.102.38.141/32","canBeTerminated":true,"type":"failover","description":null}

If we only want the routedTo information:

$ ./ovh-api-bash-client.sh --url "/ip/45.102.38.141" | sed -e 's/.*serviceName":"//' -e 's/"},"ip":.*$//'
ns612429.ip-45-102-38.eu

Delete pattern between two sections

sed '/WORD1/,/WORD2/d' input

Extract from specific line to EOF

sed -n '44519778,$p' input.log > output.log

Replace new lines with a comma and a space

sed -z 's/\n/, /'g my_file

Remove all leading blank lines at top of a file

sed '/./,$!d'

Comment out a file (# comment) from line 25 to end of file

sed '25,$s/^/#/'

To append a text after a specific pattern

sed '/adImpressions=1/a bid_response_http_error_body=0'