Bash sed: Difference between revisions

From I Will Fear No Evil
Jump to navigation Jump to search
mNo edit summary
mNo edit summary
 
Line 13: Line 13:
* will match ALL until match ( and remove match string LINE)
* will match ALL until match ( and remove match string LINE)
</pre>
</pre>
== Strip pattern match ==
<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:]]\+//'

Latest revision as of 12:53, 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)

Strip pattern match

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