User Tools

Site Tools


sed_notes

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
sed_notes [2021/01/28 19:22] rajused_notes [2021/01/28 21:49] – [replace text between two lines with a file] raju
Line 1: Line 1:
 +
 +==== replace text between two lines with a file ====
 +tags | line numbers
 +
 +Replace lines between \$start and \$end in main.txt with contents of part.txt
 +<code>
 +sed -e "$start e cat part.txt" -e "$start,$end d" main.txt
 +</code>
 +
 +Sample command:
 +<code>
 +sed -e "1 e cat part.txt" -e "1,2 d" main.txt
 +</code>
 +
 +<code>
 +$ cat main.txt
 +a b c
 +d e f
 +g h i
 +j k l
 +
 +$ cat part.txt
 +x y z
 +p q r
 +s t u
 +
 +$ start=1; end=2; sed -e "$start e cat part.txt" -e "$start,$end d" main.txt
 +x y z
 +p q r
 +s t u
 +g h i
 +j k l
 +
 +$ start=2; end=4; sed -e "$start e cat part.txt" -e "$start,$end d" main.txt
 +a b c
 +x y z
 +p q r
 +s t u
 +
 +$ start=2; end=3; sed -e "$start e cat part.txt" -e "$start,$end d" main.txt
 +a b c
 +x y z
 +p q r
 +s t u
 +j k l
 +
 +$ start=2; end=2; sed -e "$start e cat part.txt" -e "$start,$end d" main.txt
 +a b c
 +x y z
 +p q r
 +s t u
 +g h i
 +j k l
 +</code>
 +
 +==== insert file at the beginning of another file ====
 +This will insert part.txt at the beginning of main.txt.
 +
 +<code>
 +sed -e "1 e cat part.txt" main.txt
 +</code>
 +
 +Example:
 +<code>
 +$ cat main.txt
 +a b c
 +d e f
 +g h i
 +j k l
 +
 +$ cat part.txt
 +x y z
 +p q r
 +s t u
 +
 +$ sed -e "1 e cat part.txt" main.txt
 +x y z
 +p q r
 +s t u
 +a b c
 +d e f
 +g h i
 +j k l
 +</code>
 +
 +Found it in: https://unix.stackexchange.com/questions/337435/sed-insert-file-at-top-of-another
  
 ==== backup with timestamp ==== ==== backup with timestamp ====
 +tags | sed create backup, YYYYMMDD_HHMMSS
 +
 +<code>
 +sed "-i_asof_`date +%Y%m%d_%H%M%S`" -e 's/foo/bar/g' main.txt
 +</code>
 +will backup to something like main.txt_asof_20210128_151656
 +
 +<code>
 +sed "-i.`date +%F`" -e 's/foo/bar/g' main.txt
 +</code>
 +will backup to something like main.txt.2021-01-28
 +
 +==== sed do not change line endings ====
 <code> <code>
-sed "-i_asof_`date +%Y%m%d_%M%S`" -e 's/foo/bar/g' main.txt+sed -b
 </code> </code>
-will backup to something like main.txt_asof_20210128_2231 
  
 +Ref:- https://stackoverflow.com/questions/4652652/preserve-line-endings
 ==== replace double quote with single quote ==== ==== replace double quote with single quote ====
   sed "s/\"/'/g"   sed "s/\"/'/g"
sed_notes.txt · Last modified: 2021/01/28 21:50 by raju