-
Notifications
You must be signed in to change notification settings - Fork 0
/
sed-cases
38 lines (30 loc) · 1.25 KB
/
sed-cases
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
###
### see
### https://linuxhint.com/50_sed_command_examples
### for useful examples
###
# comment lines 1 to 3:
1,3 s/^/# /
# remove empty fields at the end of the lines:
s/;;;;;;;;;;;//g
# remove "empty" lines at the end of the file:
s/^;;;;;;;//g
s/^;;;;//g
# format wrong date strings (e.g. 21.03.2021 -> 2021-03-21)
s/\([0-9]\{2\}\)\.\([0-9]\{2\}\)\.\([0-9]\{4\}\)/\3-\2-\1/g
# https://stackoverflow.com/questions/26433652/sed-move-multiple-lines-to-the-end-of-a-text-file
# $ sed '1,3{H;d}; ${p;x;s/^\n//}' file
#
# 1,3{H;d}
# The 1,3 restricts these commands to operation only on lines 1 through 3. H tells sed to save the
# current line to the hold buffer. d tells sed not to print the current line at this time.
#
# ${p;x;s/^\n//}
# The $ restricts this command to the last line. The p tells sed to print the last line. x exchanges
# the pattern buffer and hold buffer. The lines that we saved from the beginning of the file are
# now in the ready to be printed. Before printing, though, we remove the extraneous leading newline
# character. Before continuing to the next line, sed will print anything left in the pattern buffer.
# move the first two lines to the end of the file:
1,2{H;d}; ${p;x;s/^\n//}
# delete empty lines
/^$/d