zoukankan      html  css  js  c++  java
  • Sed Cheat Sheet

    .---------------------------------------------------------------------.
    |                                                                     |
    |                            UNIX Stream Editor                       |
    |                             Sed Cheat Sheet                         |
    |                                                                     |
    '---------------------------------------------------------------------'
    | Created by Peter Krumins (peter@catonmat.net, @pkrumins on twitter) |
    | www.catonmat.net -- good coders code, great coders reuse            |
    '---------------------------------------------------------------------'
    
     ==================== How Commands Affect Streams ====================
    
       .---------.-----------.-----------------------------------------.
       |         |           |           Modifications to:             |
       |         |  Address  '---------.---------.---------.-----------'
       | Command | or Range  | Input   | Output  | Pattern |   Hold    |
       |         |           | Stream  | Stream  | Space   |   Buffer  |
       '---------+-----------+---------+---------+---------+-----------'
       |    =    |     -     |    -    |    +    |    -    |     -     |
       |    a    |     1     |    -    |    +    |    -    |     -     |
       |    b    |     2     |    -    |    -    |    -    |     -     |
       |    c    |     2     |    -    |    +    |    -    |     -     |
       |    d    |     2     |    +    |    -    |    +    |     -     |
       |    D    |     2     |    +    |    -    |    +    |     -     |
       |    g    |     2     |    -    |    -    |    +    |     -     |
       |    G    |     2     |    -    |    -    |    +    |     -     |
       |    h    |     2     |    -    |    -    |    -    |     +     |
       |    H    |     2     |    -    |    -    |    -    |     +     |
       |    i    |     1     |    -    |    +    |    -    |     -     |
       |    l    |     1     |    -    |    +    |    -    |     -     |
       |    n    |     2     |    +    |    *    |    -    |     -     |
       |    N    |     2     |    +    |    -    |    +    |     -     |
       |    p    |     2     |    -    |    +    |    -    |     -     |
       |    P    |     2     |    -    |    +    |    -    |     -     |
       |    q    |     1     |    -    |    -    |    -    |     -     |
       |    r    |     1     |    -    |    +    |    -    |     -     |
       |    s    |     2     |    -    |    -    |    +    |     -     |
       |    t    |     2     |    -    |    -    |    -    |     -     |
       |    w    |     2     |    -    |    +    |    -    |     -     |
       |    x    |     2     |    -    |    -    |    +    |     +     |
       |    y    |     2     |    -    |    -    |    +    |     -     |
       '---------'-----------'---------'---------'---------'-----------'
    
        Modifications to:
    
        1    Command takes single address or pattern.
        2    Command takes pair of addresses.
        -    Command does not modify the buffer.
        +    Command modifies the buffer.
        *    The ``n'' command may or may not generate output depending
             on the ``-n'' command option.
    
    
     ========================== Command Summary ==========================
    
    .----------------.----------------------------------------------------.
    |                |                                                    |
    | Command        | Description                                        |
    |                |                                                    |
    '----------------+----------------------------------------------------'
    | #              | Adds a comment.                                    |
    '----------------+----------------------------------------------------'
    | =              | The "=" command prints the current line number to  |
    |                | standard output.                                   |
    '----------------+----------------------------------------------------'
    | a             | The "a" command appends text after the             |
    | text           | range or pattern.                                  |
    '----------------+----------------------------------------------------'
    | b label        | The "b" command branches to the label. You can     |
    |                | specify a label with a text string followed by a   |
    |                | colon. If no label is there, branch to the end of  |
    |                | the script.                                        |
    '----------------+----------------------------------------------------'
    | c             | The "c" command changes the current line with      |
    | text           | text.                                              |
    '----------------+----------------------------------------------------'
    | d              | The "d" command deletes the current pattern space, |
    |                | reads in the next line, puts the new line into the |
    |                | pattern space, and aborts the current command, and |
    |                | starts execution at the first sed command.         |
    '----------------+----------------------------------------------------'
    | D              | The "D" command deletes the first portion of the   |
    |                | pattern space, up to the new line character,       |
    |                | leaving the rest of the pattern alone.             |
    '----------------+----------------------------------------------------'
    | g              | Instead of exchanging (the "x" command) the hold   |
    |                | space with the pattern space, you can copy the     |
    |                | hold space to the pattern space with the "g"       |
    |                | command.                                           |
    '----------------+----------------------------------------------------'
    | G              | If you want to append to the pattern space, use    |
    |                | the "G" command.                                   |
    '----------------+----------------------------------------------------'
    | h              | The "h" command copies the pattern buffer into the |
    |                | hold buffer.                                       |
    '----------------+----------------------------------------------------'
    | H              | The "H" command allows you to combine several      |
    |                | lines in the hold buffer. It acts like the "N"     |
    |                | command as lines are appended to the buffer, with  |
    |                | a "
    " between the lines. You can save several     |
    |                | lines in the hold buffer, and print them only if a |
    |                | particular pattern is found later.                 |
    '----------------+----------------------------------------------------'
    | i             | You can insert text before the pattern with        |
    | text           | the "i" command.                                   |
    '----------------+----------------------------------------------------'
    | l              | The "l" command prints the current pattern space.  |
    |                | It is therefore useful in debugging sed scripts.   |
    |                | It also converts unprintable characters into       |
    |                | printing characters by outputting the value in     |
    |                | octal preceded by a "" character.                 |
    '----------------+----------------------------------------------------'
    | n              | The "n" command will print out the current pattern |
    |                | space (unless the "-n" flag is used), empty the    |
    |                | current pattern space, and read in the next        |
    |                | line of input.                                     |
    '----------------+----------------------------------------------------'
    | N              | The "N" command does not print out the current     |
    |                | pattern space and does not empty the pattern       |
    |                | space. It reads in the next line, but appends a    |
    |                | new line character along with the input line       |
    |                | itself to the pattern space.                       |
    '----------------+----------------------------------------------------'
    | p              | Another useful command is the print command: "p".  |
    |                | If sed wasn't started with an "-n" option, the "p" |
    |                | command will duplicate the input. The "p" command  |
    |                | prints the entire pattern space.                   |
    '----------------+----------------------------------------------------'
    | P              | The "P" command only prints the first part of the  |
    |                | pattern space, up to the NEWLINE character.        |
    '----------------+----------------------------------------------------'
    | q              | There is one more simple command that can restrict |
    |                | the changes to a set of lines. It is the "q"       |
    |                | command: quit. This command is most useful when    |
    |                | you wish to abort the editing after some condition |
    |                | is reached.                                        |
    '----------------+----------------------------------------------------'
    | r filename     | The "r" command will append text from filename     |
    |                | after the range or pattern.                        |
    '----------------+----------------------------------------------------'
    | s/regex/repl/  | The substitute command replaces all occurrences of |
    |                | the regular expression (regex) with repl(acement)  |
    '----------------+----------------------------------------------------'
    | t label        | You can execute a branch if a pattern is found.    |
    |                | You may want to execute a branch only if a         |
    |                | substitution is made. The command "t label" will   |
    |                | branch to the label if the last substitute command |
    |                | modified the pattern space.                        |
    '----------------+----------------------------------------------------'
    | w filename     | With this command, you can specify a filename that |
    |                | will receive the modified data.                    |
    '----------------+----------------------------------------------------'
    | x              | The "x" command exchanges the hold buffer and the  |
    |                | pattern buffer.                                    |
    '----------------+----------------------------------------------------'
    | y/source/dest/ | Transliterate the characters in the pattern space, |
    |                | which appear in source to the corresponding        |
    |                | character in dest(ination).                        |
    '----------------'----------------------------------------------------'
    
    
     ======================== Command Extensions =========================
    
    .----------------.----------------------------------------------------.
    |                |                                                    |
    | Command        | Description                                        |
    |                |                                                    |
    '----------------+----------------------------------------------------'
    | Q              | Immediately quit the sed script without processing |
    |                | any more input. (zero or one address command)      |
    '----------------+----------------------------------------------------'
    | R filename     | Append a line read from filename. (zero or one     |
    |                | address command).                                  |
    '----------------+----------------------------------------------------'
    | T label        | If no s/// has done a successful substitution      |
    |                | since the last input line was read and since the   |
    |                | last t or T command, then branch to label;         |
    |                | if label is omitted, branch to end of script.      |
    |                | (accepts address range).                           |
    '----------------+----------------------------------------------------'
    | W filename     | Write the first line of the current pattern space  |
    |                | to filename. (accepts address range).              |
    '----------------'----------------------------------------------------'
    
    
     ======================= Address Range Summary =======================
    
    .----------------.----------------------------------------------------.
    |                |                                                    |
    | Format         | Description                                        |
    |                |                                                    |
    '----------------+----------------------------------------------------'
    | number         | Match only the specified line number.              |
    '----------------+----------------------------------------------------'
    | first~step     | Match every step'th line starting with line first. |
    '----------------+----------------------------------------------------'
    | $              | Match the last line.                               |
    '----------------+----------------------------------------------------'
    | 0, addr2       | Start out in "matched first address" state,        |
    |                | until addr2 is found.                              |
    '----------------+----------------------------------------------------'
    | /regex/        | Match lines matching the regular expression regex. |
    '----------------+----------------------------------------------------'
    | addr1,+N       | Will match addr1 and the N lines following addr1.  |
    '----------------+----------------------------------------------------'
    | cregexc       | Match lines matching the regular expression regex. |
    |                | The c may be any character.                        |
    '----------------+----------------------------------------------------'
    | addr1,~N       | Will match addr1 and the lines following addr1     |
    |                | until the next line whose input line number        |
    |                | is a multiple of N.                                |
    '----------------'----------------------------------------------------'
    
    
     ============== GNU Sed's Command Line Argument Summary ==============
    
    .---------------------.-----------------------------------------------.
    |                     |                                               |
    | Argument            | Description                                   |
    |                     |                                               |
    '---------------------+-----------------------------------------------'
    | -n                  |                                               |
    | --quiet             | Suppress automatic printing of pattern space. |
    | --silent            |                                               |
    '---------------------+-----------------------------------------------'
    | -e script           |                                               |  
    | --expression=script | Add the script to the commands to be executed.|
    |                     |                                               |
    '---------------------+-----------------------------------------------'
    | -f script-file      | Add the contents of script-file to the        |
    | --file=script-file  | commands to be executed.                      |
    '---------------------+-----------------------------------------------'
    | -i[suffix]          | Sdit files in place (makes backup if          |
    | --in-place[=suffix] | extension supplied).                          |
    '---------------------+-----------------------------------------------'
    | -l N                | Specify the desired line-wrap length for      |
    | --line-length=N     | the `l' command.                              |
    '---------------------+-----------------------------------------------'
    | -r                  | Use extended regular expressions in the       |
    | --regexp-extended   | script.                                       |
    '---------------------+-----------------------------------------------'
    | -s                  | Consider files as separate rather than as a   |
    | --separate          | single continuous long stream.                |
    '---------------------+-----------------------------------------------'
    | -u                  | Load minimal amounts of data from the input   |
    | --unbuffered        | files and flush the output buffers more often.|
    '---------------------+-----------------------------------------------'
    | --help              | Display this help and exit                    |
    '---------------------+-----------------------------------------------'
    | -V                  | Output version information and exit           |
    | --version           |                                               |
    '---------------------'-----------------------------------------------'
    
     =====================================================================
    
    .---------------------------------------------------------------------.
    | Created by Peter Krumins (peter@catonmat.net, @pkrumins on twitter) |
    | www.catonmat.net -- good coders code, great coders reuse            |
    '---------------------------------------------------------------------'
  • 相关阅读:
    软件工程实验二
    软件工程实验一
    软件工程作业--ATM自助银行服务系统
    软件工程作业—举例分析流程图与活动图的区别与联系
    第一个随笔
    机器学习 实验四 决策树算法及应用
    机器学习实验三 朴素贝叶斯算法及应用
    机器学习 实验二 K-近邻算法及应用
    飞机订票系统(文档)
    机器学习 实验一 感知器及其应用
  • 原文地址:https://www.cnblogs.com/Searchor/p/13468302.html
Copyright © 2011-2022 走看看