2016-03-21 10:22:03 +00:00
|
|
|
# sed
|
|
|
|
|
2018-08-14 10:39:22 +01:00
|
|
|
> Edit text in a scriptable manner.
|
2021-03-30 10:00:13 +01:00
|
|
|
> More information: <https://ss64.com/osx/sed.html>.
|
2016-03-21 10:22:03 +00:00
|
|
|
|
|
|
|
- Replace the first occurrence of a string in a file, and print the result:
|
|
|
|
|
|
|
|
`sed 's/{{find}}/{{replace}}/' {{filename}}`
|
|
|
|
|
2016-04-21 19:13:01 +01:00
|
|
|
- Replace all occurrences of an extended regular expression in a file:
|
2016-03-21 10:22:03 +00:00
|
|
|
|
2021-05-10 10:03:12 +01:00
|
|
|
`sed -E 's/{{regular_expression}}/{{replace}}/g' {{filename}}`
|
2016-03-21 10:22:03 +00:00
|
|
|
|
2020-10-24 15:10:25 +01:00
|
|
|
- Replace all occurrences of a string [i]n a file, overwriting the file (i.e. in-place):
|
2016-03-21 10:22:03 +00:00
|
|
|
|
2020-10-24 15:10:25 +01:00
|
|
|
`sed -i '' 's/{{find}}/{{replace}}/g' {{filename}}`
|
2016-03-21 10:22:03 +00:00
|
|
|
|
2016-04-21 19:13:01 +01:00
|
|
|
- Replace only on lines matching the line pattern:
|
2016-03-21 10:22:03 +00:00
|
|
|
|
2016-08-08 08:09:34 +01:00
|
|
|
`sed '/{{line_pattern}}/s/{{find}}/{{replace}}/' {{filename}}`
|
2016-03-21 10:22:03 +00:00
|
|
|
|
2018-08-14 10:39:22 +01:00
|
|
|
- Print only text between n-th line till the next empty line:
|
|
|
|
|
|
|
|
`sed -n '{{line_number}},/^$/p' {{filename}}`
|
|
|
|
|
2016-03-21 10:22:03 +00:00
|
|
|
- Apply multiple find-replace expressions to a file:
|
|
|
|
|
|
|
|
`sed -e 's/{{find}}/{{replace}}/' -e 's/{{find}}/{{replace}}/' {{filename}}`
|
2016-04-21 19:11:33 +01:00
|
|
|
|
|
|
|
- Replace separator / by any other character not used in the find or replace patterns, e.g., #:
|
|
|
|
|
|
|
|
`sed 's#{{find}}#{{replace}}#' {{filename}}`
|
2020-10-24 15:10:25 +01:00
|
|
|
|
|
|
|
- [d]elete the line at the specific line number [i]n a file, overwriting the file:
|
|
|
|
|
|
|
|
`sed -i '' '{{line_number}}d' {{filename}}`
|