+--------------------------------------------------+ |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 | +--------------------------------------------------+