linux crash course chapter 13 3

19 53 0
 linux crash course chapter 13 3

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chapter 13: sed Say what? In this chapter … • • • • • • • Basics Programs Addresses Instructions Control Spaces Examples sed • • • • GNU sed (stream editor) Noninteractive, batch editing Good for repetitive tasks Often used in a pipe sed syntax • Syntax: sed [options] program [filelist] sed [options] program-file [filelist] • Program is a set of commands for editing – Can either be issued on the command line or placed into a file (like gawk) • Filelist is a list files to edit – If omitted, input taken from standard in sed syntax con’t • Options in-place[=suffix] • Instead of sending edited text to standard out, write changes back to input file • Adding =suffix makes backup of original file -n • Do not send lines to output unless program explicitly says to Programs • sed programs contain one or more lines with the following syntax: [address[,address]] instruction [args] • Simple one or two line programs can be issued at the command line • More complex programs are usually best put in a program file How sed works Read one line of input Read first instruction in program If the address(es) select this line, runs the instruction on this line Repeat #2 for each line in the program Read next line of input and go back to step 2, until there are no more lines of input Addresses • Select which lines are to be processed • Can be a simple integer (line number) or a regular expression (pattern matching) • Address $ represents last line of input • If address omitted, all lines processed by default • If there is one address, only lines that match will be processed Addresses con’t • If two addresses are given, it selects a range • Once the first address is matched, it and subsequent lines are processed until the second address is matched • If second address is never matched, processes remainder of lines • If second addressed matched, sed will then try to match first address again Instructions • d – does not write out (deletes) selected line and does not process line any further • n – writes out current line, reads next line, and processes next program line • a – appends lines after current line • i – inserts lines before current line • c – changes select line so it contains new text • p – print current line (override –n) Instructions con’t • w file – write line to a specified file • r file – read contents of file and appends to current line • q – quits sed immediately Instructions con’t • s/pattern/replacement-str/[g][p][w file] – Substitutes first occurrence of pattern with replacement-str – g replaces all occurences – p prints changed line – w writes changed line to file • Use & to represent the pattern matched when replacing – Ex s/a.*/(a.*)/ won’t work … instead use s/a.*/(&)/ Control Structures • ! (NOT) – causes instruction to be performed on all lines not selected by address(es) • { } (Instruction grouping) – causes multiple instructions to be run on one address / address pair; separate with semicolons • : label – identify a location in a sed program • b label – branch to label • t label – conditionally branch to label if last Substitute instruction was successful Spaces • sed has two spaces (buffers) • Think of them like vim’s buffers • Lines read from input are put in pattern space • You can also move data back and forth from the hold space (temporary buffer) Spaces, cont • g – overwrites pattern space with hold space • G – appends hold space to pattern space • h – overwrites hold space with pattern space • H – appends pattern space to hold space • x – swaps the pattern and hold spaces Examples • sed -n‘/line/ p’ myfile – Prints out lines in myfile that contain ‘line’ • sed ‘2,4 d’ myfile – Delete lines 2-4, outputs remaining • sed in-place ‘2,4 d’ myfile – Deletes lines 2-4 from myfile • sed ‘s/tea/coffee/g’ myfile – Replaces tea with coffee and prints to screen More Examples • sed ‘5 q’ myfile – Prints first five lines then quits ( equiv head -5) • sed ‘/^[0-9]/ w newfile’ myfile – Copies lines starting in number to newfile • sed ‘$ r newfile’ myfile – Appends contents of newfile to end of myfile • sed ‘G’ myfile – What does this do? Program File Example d s/company/Company/g $ a\ Revised 12-1-2005\ by JMH $ d Another Program File i \ \ Manuf\tModel\tYear\tMiles\tPrice\ ===================================== s/thundbd/tbird/g s/.*/ &/ $ a \ ===================================== ...In this chapter … • • • • • • • Basics Programs Addresses Instructions Control Spaces Examples sed • • •

Ngày đăng: 06/02/2018, 09:55

Từ khóa liên quan

Mục lục

  • Chapter 13: sed

  • In this chapter …

  • sed

  • sed syntax

  • sed syntax con’t

  • Programs

  • How sed works

  • Addresses

  • Addresses con’t

  • Instructions

  • Instructions con’t

  • Slide 12

  • Control Structures

  • Spaces

  • Spaces, cont

  • Examples

  • More Examples

  • Program File Example

  • Another Program File

Tài liệu cùng người dùng

Tài liệu liên quan