sed学习笔记(四)--常用命令
时间:2007-12-20 来源:kinwin
# 注释 q [exit-code] 立刻退出,退出状态码由exit-code指示。退出之前会将当前pattern space中的内容输出(无n选项)。exit-code 是GNU扩展。 d 删除当前pattern space中的内容,立刻开始下一循环 p 打印当前pattern space中的内容。一般与n选项联合使用。 n 未加n选项的情况下,打印当前pattern space中的内容,然后读入下一行到pattern space
{} 当一组命令的作用地址范围相同时,可用{}将之括为命令组,提升效率。 |
s/regexp/replacement/flags replacement可含有\1,\2等等,用来表示regexp相应的()部分。 replacement可含有&,用以替换整个regexp |
\U 将跟于其后的字符串大写,直到遇到\L或\E \u 仅将他后面的字符大写 \L,\l同上。 \E 停止\U,\I引起的case convertion。 例: $ cat testJust a test kinwin@ustc-king:~ $ sed -r 's/te.*/\Uhello/' test Just a HELLO kinwin@ustc-king:~ $ sed -r 's/te.*/\uhello/' test Just a Hello kinwin@ustc-king:~ $ sed -r 's/te.*/\Uhel\Elo/' test Just a HELlo |
g 作用于所有的匹配,在我的GNU sed上是默认的。 number 作用于找到的n th match p 打印替换后的pattern space内容。 w filename 将替换后的行写入文件。GNU 扩展允许写入/dev/stdout和/dev/stderr e 将替换后的当前pattern space作为shell命令执行,执行后结果再放回pattern space. 例: $ cat newdate kinwin kinwin@ustc-king:~ $ sed -n 's/kin.*//pe' new date kinwin@ustc-king:~ $ sed -n 's/kin.*//ep' new 2007年 12月 20日 星期四 10:51:23 CST $ sed 's/kin.*//pe' new date 2007年 12月 20日 星期四 10:52:21 CST I i 忽略大小写 |
|