Differences

This shows you the differences between two versions of the page.


Previous revision
fuss:sed [2024/06/22 03:48] (current) – [Print all Lines Between Bounds] office
Line 1: Line 1:
 +====== Stripping Comments and Newlines ======
 +
 +<code bash>
 +cat /etc/squid/squid.conf| sed -e 's/^#.*//g' | sed -e ':r;N;s/\n$//g;br'
 +</code>
 +
 +First part:
 +<code bash>
 +sed -e 's/^#.*//g'
 +</code>
 +strips any line beginning (''^'') with ''#'' and anything that follows after the hash.
 +
 +Next part:
 +<code bash>
 +sed -e ':r;N;s/\n$//g;br'
 +</code>
 +
 +  - create register ''r'',
 +  - put newline (''N'') in register r,
 +  - substitute all ending newlines (''\n$'') with nothing ''/''''/'',
 +  - repeat with register ''r''.
 +
 +====== Insert a Space After Every Character ======
 +
 +Using bash:
 +<code bash>
 +cat test | sed -s 's/\([a-zA-Z0-9]\)/\1 /g'
 +</code>
 +
 +Note that ''sed'' needs the grouping operators ''('' and '')'' escaped.
 +
 +====== Insert a Line at a Given Position ======
 +
 +Suppose we have a text file containing the following lines:
 +<code>
 +number 1
 +number 3
 +</code>
 +
 +and that we want to insert ''number 2'' as the second line between ''number 1'' and ''number 3'', we would issue:
 +
 +<code bash>
 +sed -i '2inumber 2' file.txt
 +</code>
 +
 +where the parts of the fragments represent:
 +  * ''2'' the line number,
 +  * ''i'' for the insert command, and
 +  * ''number 2'' the data that has to be inserted.
 +
 +which will modify the file in-place such that the contents of the file after the insertion becomes:
 +<code>
 +number 1
 +number 2
 +number 3
 +</code>
 +
 +====== Print all Lines Between Bounds ======
 +
 +To print out all the lines between ''5'' and ''10'', issue:
 +<code bash>
 +sed -n '5,10p' file.txt
 +</code>
 +
 +====== Normalizing Paths ======
 +
 +One way to normalize filenames is to pass the name through the streamline editor, sed:
 +<code bash>
 +echo "/path/to/file.txt" | LANG=C sed "s/[^\x20\x30-\x39\x40-\x5a\x61-\x7a\x2f\x5c\x5b\x5d]//g"
 +</code>
 +in order to remove unwanted characters. 
 +
 +The hexadecimal set that ''sed'' matches in the example corresponds to all characters ''0'' to ''9'', ''a'' to ''z'', ''A'' to ''Z'' plus space, the forward- and backward slashes as well as the square brackets that are used typically to store the YouTube ID within the filename.
  

Wizardry and Steamworks

© 2025 Wizardry and Steamworks

Access website using Tor Access website using i2p Wizardry and Steamworks PGP Key


For the contact, copyright, license, warranty and privacy terms for the usage of this website please see the contact, license, privacy, copyright.