WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use...
-
Upload
aubrie-payne -
Category
Documents
-
view
214 -
download
0
Transcript of WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use...
![Page 1: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/1.jpg)
WHAT IS SED?
A non-interactive stream editorInterprets sed instructions and performs
actions
Use sed to:Automatically perform edits on file(s)Simplify doing the same edits on multiple filesWrite conversion programsfiltering and transforming text
1
![Page 2: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/2.jpg)
THE SED COMMAND
2
![Page 3: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/3.jpg)
SED COMMAND SYNTAX
3
![Page 4: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/4.jpg)
SED OPERATION
4
![Page 5: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/5.jpg)
HOW DOES SED WORK?
sed reads line of inputline of input is copied into a temporary buffer
called pattern spaceediting commands are applied
subsequent commands are applied to line in the pattern space, not the original input line
once finished, line is sent to output(unless –n option was used)
line is removed from pattern spacesed reads next line of input, until end of file
Note: input file is unchanged 5
![Page 6: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/6.jpg)
Processing Flow
![Page 7: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/7.jpg)
Script Execution
![Page 8: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/8.jpg)
Trace Script Execution
![Page 9: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/9.jpg)
Trace Script Execution
![Page 10: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/10.jpg)
SED INSTRUCTION FORMAT
address determines which lines in the input file are to be processed by the command(s)if no address is specified, then the command is
applied to each input lineaddress types:
Single-Line addressSet-of-Lines addressRange addressNested address
![Page 11: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/11.jpg)
Line Addresses in sed
![Page 12: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/12.jpg)
SINGLE-LINE ADDRESS
Specifies only one line in the input filespecial: dollar sign ($) denotes last line of input
file
Examples: show only line 3sed -n -e '3 p' input-file
show only last linesed -n -e '$ p' input-file
substitute “endif” with “fi” on line 10sed -e '10 s/endif/fi/' input-file
12
![Page 13: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/13.jpg)
RANGE ADDRESS
Defines a set of consecutive linesFormat:
start-addr,end-addr (inclusive)
Examples:10,50 line-number,line-number10,/R.E/ line-number,/RegExp//R.E./,10 /RegExp/,line-number/R.E./,/R.E/ /RegExp/,/RegExp/
13
![Page 14: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/14.jpg)
Address Range
![Page 15: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/15.jpg)
EXAMPLE: RANGE ADDRESS
% sed -n -e ‘/^BEGIN$/,/^END$/p’ input-file
Print lines between BEGIN and END, inclusive
BEGIN
Line 1 of input
Line 2 of input
Line3 of input
END
Line 4 of input
Line 5 of input
15
addr1 addr2
These lines are printed
![Page 16: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/16.jpg)
ADDRESS WITH !
address with an exclamation point (!):instruction will be applied to all lines that do not match the address
Example: print lines that do not contain “obsolete”
sed -e ‘/obsolete/!p’ input-file
16
![Page 17: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/17.jpg)
SED COMMANDS
17
![Page 18: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/18.jpg)
LINE NUMBER
line number command (=) writes the current line number before each matched/output line
Examples:
sed -e '/Two-thirds-time/=' tuition.data
sed -e '/^[0-9][0-9]/=' inventory
18
![Page 19: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/19.jpg)
MODIFY COMMANDS
19
Substitute
![Page 20: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/20.jpg)
INSERT COMMAND: I
adds one or more lines directly to the output before the address:inserted “text” never appears in sed’s pattern
spacecannot be used with a range address; can only
be used with the single-line and set-of-lines address types
Syntax:[address] i\
text20
![Page 21: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/21.jpg)
EXAMPLE: INSERT COMMAND (I)% cat tuition.insert.sed1 i\Tuition List\
% cat tuition.dataPart-time 1003.99Two-thirds-time 1506.49Full-time 2012.29
% sed -f tuition.insert.sed tuition.data
• Tuition List
Part-time 1003.99Two-thirds-time 1506.49Full-time 2012.29
21
Input data
Sed script to insert “Tuition List” as report title before line 1
Output after applyingthe insert command
![Page 22: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/22.jpg)
APPEND COMMAND: A
adds one or more lines directly to the output after the address: Similar to the insert command (i), append cannot
be used with a range address.Appended “text” does not appear in sed’s
pattern space.
Syntax:[address] a\
text
22
![Page 23: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/23.jpg)
EXAMPLE: APPEND COMMAND (A)
% cat tuition.append.seda \--------------------------% cat tuition.dataPart-time 1003.99Two-thirds-time 1506.49Full-time 2012.29% sed -f tuition.append.sed tuition.dataPart-time 1003.99--------------------------Two-thirds-time 1506.49--------------------------Full-time 2012.29--------------------------
23
Input data
Sed script to appenddashed line after each input line
Output after applyingthe append command
![Page 24: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/24.jpg)
CHANGE COMMAND: C
replaces an entire matched line with new text
accepts four address types: single-line, set-of-line, range, and nested
addresses.
Syntax:[address1[,address2]] c\
text
24
![Page 25: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/25.jpg)
EXAMPLE: CHANGE COMMAND (C)
% cat tuition.change.sed
1 c\
Part-time 1100.00
% cat tuition.data
Part-time 1003.99
Two-thirds-time 1506.49
Full-time 2012.29
% sed -f tuition.change.sed tuition.data
Part-time 1100.00
Two-thirds-time 1506.49
Full-time 2012.29 25
Input data
Sed script to change tuition cost from1003.99 to 1100.00
Output after applyingthe change command
![Page 26: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/26.jpg)
DELETE COMMAND: D
deletes the entire pattern spacecommands following the delete command are
ignored since the deleted text is no longer in the pattern space
Syntax:[address1[,address2]] d
26
![Page 27: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/27.jpg)
EXAMPLE: DELETE COMMAND (D)
Remove part-time data from “tuition.data” file
% cat tuition.data
Part-time 1003.99
Two-thirds-time 1506.49
Full-time 2012.29
% sed –e '/^Part-time/d' tuition.data
Two-thirds-time 1506.49
Full-time 2012.29
27
Input data
Output after applying delete command
![Page 28: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/28.jpg)
Substitute Operation
![Page 29: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/29.jpg)
SUBSTITUTE COMMAND (S)
Syntax: [addr1][,addr2] s/search/replace/[flags]
replaces text selected by search string with replacement string
search string can be regular expressionflags:
global (g), i.e. replace all occurrencesspecific substitution count (integer), default 1
29
![Page 30: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/30.jpg)
SUBSTITUTION BACK REFERENCES
31
![Page 31: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/31.jpg)
EXAMPLE: REPLACEMENT STRING &
32
$ cat datafileCharles Main 3.0 .98 3 34Sharon Gray 5.3 .97 5 23Patricia Hemenway 4.0 .7 4 17TB Savage 4.4 .84 5 20AM Main Jr. 5.1 .94 3 13Margot Weber 4.5 .89 5 9Ann Stephens 5.7 .94 5 13
$ sed -e ‘s/[0-9][0-9]$/&.5/’ datafileCharles Main 3.0 .98 3 34.5Sharon Gray 5.3 .97 5 23.5Patricia Hemenway 4.0 .7 4 17.5TB Savage 4.4 .84 5 20.5AM Main Jr. 5.1 .94 3 13.5Margot Weber 4.5 .89 5 9Ann Stephens 5.7 .94 5 13.5
![Page 32: WHAT IS SED? A non-interactive stream editor Interprets sed instructions and performs actions Use sed to: Automatically perform edits on file(s) Simplify.](https://reader035.fdocuments.us/reader035/viewer/2022070400/56649f155503460f94c2a3a3/html5/thumbnails/32.jpg)
EXAMPLE: THE QUIT (Q) COMMAND
Syntax: [addr]qQuit (exit sed) when addr is encountered.
Example: Display the first 50 lines and quit% sed -e ’50q’ datafile
Same as:% sed -n -e ‘1,50p’ datafile
% head -50 datafile
34
CSCI 330 - The Unix System