Bash sed

From I Will Fear No Evil
Revision as of 12:53, 11 December 2023 by Chubbard (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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