linux命令---sed

用途

sed, 流编辑, 可以用来分析standard input, 还可以将数据进行取代, 删除, 新增, 取特定行.

用法

sed -nefr action

选项与参数:

  -n: 在一般sed用法中, 所有来自stdin的数据一般都会被列出到屏幕上, 但如果加上-n参数, 则只有经过sed特殊处理的那一行(或动作)才会被列出来.

  -e: 直接在指令列模式上进行sed的动作编辑

  -f: 直接将sed的动作写在一个档案内, -f filename 则可以执行filename内的sed动作

  -r: sed的动作支持的延伸型正则表示法的语法

  -i: 直接修改读取的档案内容, 而不是有屏幕输出

动作说明: [n1, n2]function

  a: 新增, a的后面可以接字符串, 这些字符串会在新的一行出现(目前的下一行)

  c: 取代, c后面可以解字符串, 这些字符串可以取代n1, n2之间的行

  i: 插入, i的后面可以接字符串, 这些字符串会在新的一行出现(目前的上一行)

  p: 打印, 将某个选择的数据印出(通常与-n一起)

  s: 取代, 可以直接进行取代(通常搭配正则表示法)

示例

  1. 将/etc/passwd的内容列出并打印行号, 同时, 删除第2~5行

nl /etc/passwd | sed '2,5d'

  2. 承上题, 在第二行后加上'drink tea'字样

nl /etc/passwd | sed '2a drink tea'

  3. 在第二行前增加多行

nl /etc/passwd | sed '2a Drink tea or ...\> drink beet?'

  4. 将第2-5行的内容取代为'No 2-5 number'

nl /etc/passwd | sed '2,5c No 2-5 number'

  5. 仅列出第5-7行

nl /etc/passwd | sed -n '5,7p'

<未完>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2014-05-27 12:38  TonyZheng  阅读(135)  评论(0编辑  收藏  举报