linux命令---sed

时间:2014-05-28 18:27:46   收藏:0   阅读:320

用途

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

用法

bubuko.com,布布扣
sed -nefr action
bubuko.com,布布扣

选项与参数:

  -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行

bubuko.com,布布扣
nl /etc/passwd | sed 2,5d
bubuko.com,布布扣

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

bubuko.com,布布扣
nl /etc/passwd | sed 2a drink tea
bubuko.com,布布扣

  3. 在第二行前增加多行

bubuko.com,布布扣
nl /etc/passwd | sed 2a Drink tea or ...\> drink beet?
bubuko.com,布布扣

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

bubuko.com,布布扣
nl /etc/passwd | sed 2,5c No 2-5 number
bubuko.com,布布扣

  5. 仅列出第5-7行

bubuko.com,布布扣
nl /etc/passwd | sed -n 5,7p
bubuko.com,布布扣

<未完>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

linux命令---sed,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!