Bash sed: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
==== Useful sed commands ==== | ==== Useful sed commands ==== | ||
== Ignore until EOF == | |||
<pre> | |||
cat foo | sed "1,/^stringMatch/d" | cat foo | sed "1,/^stringMatch/d" | ||
* Will ignore all before string match until EOF | * Will ignore all before string match until EOF | ||
* stringMatch must be start of line (^) | * stringMatch must be start of line (^) | ||
</pre> | |||
== Match all until EOF == | |||
<pre> | |||
cat foo | sed "/^stringMatch2/q" | grep -v "^stringMatch2" | cat foo | sed "/^stringMatch2/q" | grep -v "^stringMatch2" | ||
* will match ALL until match ( and remove match string LINE) | * will match ALL until match ( and remove match string LINE) | ||
</pre> | |||
<pre> | <pre> | ||
echo "192.168.15.58 172.17.0.1 123.10.130.201" | sed 's/172.[[:digit:]]\+.[[:digit:]]\+.[[:digit:]]\+//' | echo "192.168.15.58 172.17.0.1 123.10.130.201" | sed 's/172.[[:digit:]]\+.[[:digit:]]\+.[[:digit:]]\+//' |
Revision as of 11:52, 11 December 2023
Useful sed commands
Ignore until EOF
cat foo | sed "1,/^stringMatch/d" * Will ignore all before string match until EOF * stringMatch must be start of line (^)
Match all until EOF
cat foo | sed "/^stringMatch2/q" | grep -v "^stringMatch2" * will match ALL until match ( and remove match string LINE)
echo "192.168.15.58 172.17.0.1 123.10.130.201" | sed 's/172.[[:digit:]]\+.[[:digit:]]\+.[[:digit:]]\+//' 192.168.15.58 123.10.130.201
- Will strip out IP addresses beginning with 172.
Replace in file only when matching regex
This will only alter values if the first arg matches Nice for changing values in a script or ini
sed -ie '/^foo/s/4/20/g' /tmp/b cat /tmp/b foo=20 foo=4 bar=5 bar=5