From c2c38a688d402dd40153c5f4908492818180457f Mon Sep 17 00:00:00 2001 From: Fazle Arefin Date: Wed, 18 Jun 2025 16:39:12 +1000 Subject: [PATCH] sed: edit page and add example (#16868) * sed: edit page and add example --------- Co-authored-by: Managor <42655600+Managor@users.noreply.github.com> --- pages/linux/sed.md | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/pages/linux/sed.md b/pages/linux/sed.md index 48c0a2f9f1..9332124708 100644 --- a/pages/linux/sed.md +++ b/pages/linux/sed.md @@ -1,33 +1,37 @@ # sed -> Edit text in a scriptable manner. +> GNU stream editor for filtering and transforming text. > See also: `awk`, `ed`. > More information: . -- Replace all `apple` (basic regex) occurrences with `mango` (basic regex) in all input lines and print the result to `stdout`: +- Replace `apple` with `mango` on all lines using basic regex, print to `stdout`: `{{command}} | sed 's/apple/mango/g'` -- Replace all `apple` (extended regex) occurrences with `APPLE` (extended regex) in all input lines and print the result to `stdout`: +- Replace `apple` with `APPLE` on all lines using extended regex, print to `stdout`: `{{command}} | sed {{[-E|--regexp-extended]}} 's/(apple)/\U\1/g'` -- Replace all `apple` (basic regex) occurrences with `mango` (basic regex) in a specific file and overwrite the original file in place: +- Use basic regex to replace `apple` with `mango` and `orange` with `lime` in-place in a file (overwriting original file): -`sed {{[-i|--in-place]}} 's/apple/mango/g' {{path/to/file}}` +`sed {{[-i|--in-place]}} -e 's/apple/mango/g' -e 's/orange/lime/g' {{path/to/file}}` -- Execute a specific script file and print the result to `stdout`: +- Execute a specific `sed` script file and print the result to `stdout`: `{{command}} | sed {{[-f|--file]}} {{path/to/script.sed}}` -- Print just the first line to `stdout`: +- [p]rint only the first line to `stdout`: `{{command}} | sed {{[-n|--quiet]}} '1p'` -- [d]elete the first line of a file: +- [d]elete lines 1 to 5 of a file and back up the original file with a `.orig` extension: -`sed {{[-i|--in-place]}} 1d {{path/to/file}}` +`sed {{[-i|--in-place=]}}{{.orig}} '1,5d' {{path/to/file}}` -- [i]nsert a new line at the first line of a file: +- [i]nsert a new line at the beginning of a file, overwriting the original file in-place: `sed {{[-i|--in-place]}} '1i\your new line text\' {{path/to/file}}` + +- Delete blank lines (with or without spaces/tabs) from a file, overwriting the original file in-place: + +`sed {{[-i|--in-place]}} '/^[[:space:]]*$/d' {{path/to/file}}`