'sed' - filter and transform text - Video Man Pages

'sed' - filter and transform text - Video Man Pages

D
DistroTube
2 Video Views·Sep 11, 2025

The 'sed' command is a very powerful shell utility that is used to filter and transform text.

- Replace first instance on each line of "old" with "new" using basic regex and print to stdout:
command | sed 's/old/new/'

- Replace "old" with "new" on all lines using basic regex and print to stdout:
sed 's/old/new/g' path/to/file

- Replace case-insensitive "old" with "new" on all lines and print to stdout:
sed 's/old/new/gi' path/to/file

- Replace "old" with "OLD" on all lines using extended regex and print to stdout:
sed -E 's/(old)/\U\1/g' path/to/file
command | sed -E 's/(old)/\U\1/g'

NOTE \U convert to uppercase; \1 tells it to convert the first capture group of the sed command (which is "old").

- Replace "old" with "new" in-place in a file (writes to the file!):
sed -i 's/old/new/g' path/to/file

- Replace "old" with "new" and "first" with "second" in-place in a file (writes to the file!):
sed -i -e 's/old/new/g' -e 's/first/second/g' path/to/file

- Print the first 10 lines to stdout (similar to 'head'):
command | sed -n '10p'

NOTE The '-n' flag suppresses the printing of the entire output of the command. Without the '-n', it would print the 10 lines and then it would print the entire output from command.

- Print only lines that contain the pattern (similar to 'grep'):
sed -n '/pattern/p' path/to/file

- Delete pattern and print to stdout:
sed '/pattern/d' path/to/file

- Delete lines 1-4 of a file and create a back up file with the .bak extension:
sed -i.bak '1,4d' path/to/file

- Delete blank lines (with or without spaces/tabs) from a file and print to stdout:
sed '/^[[:space:]]*$/d' path/to/file

- Insert a new line at the beginning of file, overwriting the file in-place:
sed -i '1i\A new first line\' path/to/file

- Inserting a line before a pattern and print to stdout.
sed '/pattern/i\This is a new line' path/to/file

- Append a line after a pattern and print to stdout.
sed '/pattern/a\This is a new line' path/to/file

REFERENCED:
https://gitlab.com/dwt1/vidman

WANT TO SUPPORT THE CHANNEL?
💰 Patreon: https://www.patreon.com/distrotube
💳 Paypal: https://www.paypal.com/donate/?hosted_button_id=MW3ZFGS8Q9JGW
🛍️ Amazon: https://amzn.to/2RotFFi
👕 Teespring: https://teespring.com/stores/distrotube

DT ON THE WEB:
🕸️ Website: http://distro.tube
📁 GitLab: https://gitlab.com/dwt1
🗨️ Mastodon: https://fosstodon.org/@distrotube
👫 Reddit: https://www.reddit.com/r/DistroTube/
📽️ Odysee: https://odysee.com/@DistroTube:2

FREE AND OPEN SOURCE SOFTWARE THAT I LIKE:
🌐 Brave Browser - https://brave.com/
📽️ Open Broadcaster Software: https://obsproject.com/
🎬 Kdenlive: https://kdenlive.org
🎨 GIMP: https://www.gimp.org/
💻 VirtualBox: https://www.virtualbox.org/
🗒️ Doom Emacs: https://github.com/hlissner/doom-emacs

Your support is very much appreciated. Thanks, guys!