2013-12-11 14:50:11 +04:00
|
|
|
# sed
|
|
|
|
|
2018-06-26 18:19:31 +03:00
|
|
|
> Edit text in a scriptable manner.
|
2013-12-11 14:50:11 +04:00
|
|
|
|
2016-01-21 15:02:00 +03:00
|
|
|
- Replace the first occurrence of a string in a file, and print the result:
|
2013-12-11 14:50:11 +04:00
|
|
|
|
2015-08-20 18:59:41 +03:00
|
|
|
`sed 's/{{find}}/{{replace}}/' {{filename}}`
|
2013-12-11 14:50:11 +04:00
|
|
|
|
2016-04-21 21:13:01 +03:00
|
|
|
- Replace all occurrences of an extended regular expression in a file:
|
2016-02-27 16:23:24 +03:00
|
|
|
|
2016-04-21 21:13:01 +03:00
|
|
|
`sed -r 's/{{regex}}/{{replace}}/g' {{filename}}`
|
2016-02-27 16:23:24 +03:00
|
|
|
|
2016-01-21 15:02:00 +03:00
|
|
|
- Replace all occurrences of a string in a file, overwriting the file (i.e. in-place):
|
2013-12-11 14:50:11 +04:00
|
|
|
|
2015-11-23 18:05:25 +03:00
|
|
|
`sed -i 's/{{find}}/{{replace}}/g' {{filename}}`
|
2013-12-11 14:50:11 +04:00
|
|
|
|
2016-04-21 21:13:01 +03:00
|
|
|
- Replace only on lines matching the line pattern:
|
2013-12-11 14:50:11 +04:00
|
|
|
|
2016-08-08 10:09:34 +03:00
|
|
|
`sed '/{{line_pattern}}/s/{{find}}/{{replace}}/' {{filename}}`
|
2014-03-27 22:27:35 +04:00
|
|
|
|
2018-11-16 17:11:22 +03:00
|
|
|
- Delete lines matching the line pattern:
|
|
|
|
|
|
|
|
`sed '/{{line_pattern}}/d' {{filename}}`
|
|
|
|
|
2018-06-26 18:19:31 +03:00
|
|
|
- Print only text between n-th line till the next empty line:
|
|
|
|
|
|
|
|
`sed -n '{{line_number}},/^$/p' {{filename}}`
|
|
|
|
|
2016-01-21 15:02:00 +03:00
|
|
|
- Apply multiple find-replace expressions to a file:
|
2014-05-18 02:12:37 +04:00
|
|
|
|
2015-08-20 18:59:41 +03:00
|
|
|
`sed -e 's/{{find}}/{{replace}}/' -e 's/{{find}}/{{replace}}/' {{filename}}`
|
2016-04-10 22:18:24 +03:00
|
|
|
|
2016-04-21 21:11:33 +03:00
|
|
|
- Replace separator / by any other character not used in the find or replace patterns, e.g., #:
|
2016-04-10 22:18:24 +03:00
|
|
|
|
|
|
|
`sed 's#{{find}}#{{replace}}#' {{filename}}`
|