+--------------------------------------------------+
|Sed - Gnu Stream Editor - Tips and Tricks         |
|Written by Wim Stockman - on 18 June 2022         |
+--------------------------------------------------+

 ____           _ 
/ ___|  ___  __| |
\___ \ / _ \/ _` |
 ___) |  __/ (_| |
|____/ \___|\__,_|
                  
 ____  _                              _____    _ _ _             
/ ___|| |_ _ __ ___  __ _ _ __ ___   | ____|__| (_) |_ ___  _ __ 
\___ \| __| '__/ _ \/ _` | '_ ` _ \  |  _| / _` | | __/ _ \| '__|
 ___) | |_| | |  __/ (_| | | | | | | | |__| (_| | | || (_) | |   
|____/ \__|_|  \___|\__,_|_| |_| |_| |_____\__,_|_|\__\___/|_|   
                                                                 
1. Sed: Append a prefix in front of every line of a file
--------------------------------------------------------

Example File:
▶ cat /tmp/file
Line One
Line Two
Line Three
Line Four
Line Five

▶ sed 's/^/PREFIX: /' /tmp/file

PREFIX: Line One
PREFIX: Line Two
PREFIX: Line Three
PREFIX: Line Four
PREFIX: Line Five

2. Sed: Append a postfix to every line of a file
--------------------------------------------------------
▶  sed 's/$/ : Postfix/' /tmp/file

Line One : Postfix
Line Two : Postfix
Line Three : Postfix
Line Four : Postfix
Line Five : Postfix


3. Sed: Prepend and Append to every line of a file
--------------------------------------------------------
▶ sed 's/.*/PREFIX: & :Postfix/' /tmp/file

PREFIX: Line One :Postfix 
PREFIX: Line Two :Postfix
PREFIX: Line Three :Postfix
PREFIX: Line Four :Postfix
PREFIX: Line Five :Postfix

☻ The magic happens by using the ‶&″ which means : ‶the whole part of the input that was matched by the pattern″ ☻  

4. Sed: Insert text before the first line
--------------------------------------------------------
▶ sed '1i Before First Line' /tmp/file

Before First Line
Line One
Line Two
Line Three
Line Four
Line Five

5. Sed: use of line number 
--------------------------------------------------------
In Sed every command can be prepended by a line number.
So the command ‶i″ inserts text before so 1i - means before line 1

A special case of the line number is the ‶$″ sign which means last line.

 Change last character of a file
▶  sed '$s/.$/LAST/' /tmp/file

 Remove last character of a file
▶ sed '$s/.$//' /tmp/file


+--------------------------------------------------+
|Suggestions? gopher@yasendfile.org		   |
+--------------------------------------------------+