2013-12-11 21:50:11 +11:00
|
|
|
# sed
|
|
|
|
|
2018-06-26 17:19:31 +02:00
|
|
|
> Edit text in a scriptable manner.
|
2021-03-30 10:59:06 +02:00
|
|
|
> More information: <https://man.archlinux.org/man/sed.1>.
|
2013-12-11 21:50:11 +11:00
|
|
|
|
2019-01-08 19:28:59 +01:00
|
|
|
- Replace the first occurrence of a regular expression in each line of a file, and print the result:
|
2013-12-11 21:50:11 +11:00
|
|
|
|
2021-05-10 11:03:12 +02:00
|
|
|
`sed 's/{{regular_expression}}/{{replace}}/' {{filename}}`
|
2013-12-11 21:50:11 +11:00
|
|
|
|
2019-01-08 19:28:59 +01:00
|
|
|
- Replace all occurrences of an extended regular expression in a file, and print the result:
|
2016-02-27 14:23:24 +01:00
|
|
|
|
2021-05-10 11:03:12 +02:00
|
|
|
`sed -r 's/{{regular_expression}}/{{replace}}/g' {{filename}}`
|
2016-02-27 14:23:24 +01:00
|
|
|
|
2016-01-21 13:02:00 +01:00
|
|
|
- Replace all occurrences of a string in a file, overwriting the file (i.e. in-place):
|
2013-12-11 21:50:11 +11:00
|
|
|
|
2015-11-23 16:05:25 +01:00
|
|
|
`sed -i 's/{{find}}/{{replace}}/g' {{filename}}`
|
2013-12-11 21:50:11 +11:00
|
|
|
|
2016-04-21 19:13:01 +01:00
|
|
|
- Replace only on lines matching the line pattern:
|
2013-12-11 21:50:11 +11:00
|
|
|
|
2016-08-08 08:09:34 +01:00
|
|
|
`sed '/{{line_pattern}}/s/{{find}}/{{replace}}/' {{filename}}`
|
2014-03-27 14:27:35 -04:00
|
|
|
|
2018-11-16 15:11:22 +01:00
|
|
|
- Delete lines matching the line pattern:
|
|
|
|
|
|
|
|
`sed '/{{line_pattern}}/d' {{filename}}`
|
|
|
|
|
2020-10-13 02:53:52 +05:00
|
|
|
- Print the first 11 lines of a file:
|
2018-06-26 17:19:31 +02:00
|
|
|
|
2020-10-13 02:53:52 +05:00
|
|
|
`sed 11q {{filename}}`
|
2018-06-26 17:19:31 +02:00
|
|
|
|
2016-01-21 13:02:00 +01:00
|
|
|
- Apply multiple find-replace expressions to a file:
|
2014-05-18 01:12:37 +03:00
|
|
|
|
2015-08-20 16:59:41 +01:00
|
|
|
`sed -e 's/{{find}}/{{replace}}/' -e 's/{{find}}/{{replace}}/' {{filename}}`
|
2016-04-11 00:48:24 +05:30
|
|
|
|
2021-08-15 19:59:09 +02:00
|
|
|
- Replace separator `/` by any other character not used in the find or replace patterns, e.g. `#`:
|
2016-04-11 00:48:24 +05:30
|
|
|
|
|
|
|
`sed 's#{{find}}#{{replace}}#' {{filename}}`
|