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