sed命令基本语法笔记整理

发布时间:2016-12-9 15:48:25 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"sed命令基本语法笔记整理",主要涉及到sed命令基本语法笔记整理方面的内容,对于sed命令基本语法笔记整理感兴趣的同学可以参考一下。

sed命令的基本语法 1.      Sed命令的工作流程: Sed命令对文本的搜索是一行一行进行。 2.      Sed命令的基本语法格式 Man手册的语法描述:   NAME        sed - stream editor for filtering and transforming text   SYNOPSIS        sed [OPTION]... {script-only-if-no-other-script} [input-        file]...   DESCRIPTION        Sed is a stream editor.  A stream editor is used to per-        form  basic  text  transformations on an input stream (a        file or input from a pipeline).  While in some ways sim-        ilar  to an editor which permits scripted edits (such as        ed),  sed  works  by  making  only  one  pass  over  the        input(s), and is consequently more efficient.  But it is        sed’s ability to filter text in a pipeline which partic-        ularly distinguishes it from other types of editors.          -n,  --quiet, --silent                 suppress automatic printing of pattern space          -e  script, --expression=script                 add the script to the commands to be executed          -f  script-file, --file=script-file                 add  the  contents of script-file to the commands               to be executed      p      Print the current pattern space.      P      Print  up  to  the  first embedded newline of the               current pattern space. s  /regexp/replacement/               Attempt  to  match  regexp  against  the  pattern               space.    If  successful,  replace  that  portion               matched with replacement.   The  replacement  may               contain  the special character & to refer to that               portion of the pattern space which  matched,  and               the special escapes \1 through \9 to refer to the               corresponding  matching  sub-expressions  in  the               regexp.      w   filename               Write the current pattern space to filename.      W   filename               Write the first line of the current pattern space               to filename.  This is a GNU extension.     A.    sed 一般命令格式: sed [options] {sed-commands} {input-file} 1)       p 命令与-n 选项(print, --quiet –silent) 只打印第一行 $ sed -n'1 p' example.txt 打印1至3行               $sed-n '1,3 p' example.txt               选项中加上-n与没加-n的区别:命令对比  $ sed '1,3 p' example.txt               打印Jason 所在行 sed -n '/Jason/ p' example.txt 打印Jason 至Jane 所在的行 sed -n '/Jason/,/Jane/ p'example.txt 打印以103 开头的行 sed -n '/^103/ p' example.txt 打印以Manager 结尾的行 sed -n '/Manager$/ p' example.txt 以数字开头,而且是连续重复三次 sed -n '/^[0-9]\{3\}/ p'example.txt 每隔一行打印一次 sed -n '1~2 p' example.txt 2)       d 命令(delete) d命令与p命令基本用法一致 删除103 字符串所在的行 sed '/103/ d' example.txt 3)       -f选项(-f 从文件中读入命令) 新建cmd.sed 命令文件,文件内容如下: /Jane/ p 在终端输入命令:sed -f cmd.sed example.txt 注意:可在以命令文件中写多个命令 4)       -e 选项(执行多个命令) 打印Jason 和Jane 所在的行 形式一:sed -n -e '/John/ p' -e '/Jane/p' example.txt               形式二:sed -n -e '/John/ p;/Jane/ p'example.txt B.    替换命令格式 sed'[address-range|pattern-range]s/originalstring/replacement-string/[substitute-flags]'inputfile   address-range:地址列表,表示从哪个地方开始执行,如:1,3 表示第一行 到第3 行。 pattern-range:样式列表,表示从哪个样式匹配串开始。如:/Jane/,表示 从行中包含字符串Jane 的行开始执行。[]中的都是可选的。 s:表示要执行替换命令(substitute) originalstring:需要被替换的字符串 replacement-string:替换后的字符串。 substitute-flags:可选替换标志符。 1)       address-range 和pattern-range a) 把第一行的John 替换成guozi 字符串 sed '1 s/John/guozi/' example.txt b) 把第二行至第五行的Manager 替换成guozi sed '2,5 s/Manager/guozi/'example.txt c) 把John 所以字符串行当中的CEO 替换成XXX sed '/John/ s/CEO/XXX/'example.txt d) 从第四行而且包含字符串Ram 的行中,把Developer 字符串替换成XXX sed '4,/Ram/ s/Developer/XXX/'example.txt e) 如果没有address-range 和pattern-range,那么就会把每一行碰到的第一 个匹配字符串给替换掉。 sed 's/1/AAA/' example.txt 2)       substitute-flags a)       全局标志g(globe) 全局标志会把遇到的所有满足条件的字符串给替换掉 sed 's/1/AAA/g' example.txt b)       数字标志1,2,3 把要匹配串中的第2个符合条件的匹配串替换成我们想要的字符串 sed 's/1/AAA/2’ example.txt c)       又见p(print)标志 sed -n 's/1/AAA/p' example.txt d)       写标志w(write) 把每一行碰到第一个字符串John 替换成guozi 字符串,并写入 output.txt 中 sed 's/John/guozi/w output.txt'example.txt 对比重定向: 重定向会把所以输出到终端的内容全部放到文本当中,而w        开关只把 我们所做过修改的行写入文件当中。            sed 's/John/guozi/' example.txt >output.txt e)       敏感标志i(ignore flag) 忽略大小写,把文本当中所有包含jason 字符串的行替换成AAAA 字符串 sed 's/jason/AAAA/gi' example.txt f)        联合使用标志 可以使用多个标志来对字符串进行替换并保存 sed 's/jason/AAAA/gipwoutput2.txt' example.txt 3)       替换命令定界符 格式1:Sed ‘s///’ example.txt 格式2:Sed ‘s@@@’ example.txt 用处:使用合理的定界符可以方便的阅读我们的程序代码。 4)       强大的&——样式匹配 将origin-string替换到replace-string当中 sed 's/John/[&]/' example.txt 需求:将开头为三位数字的外面再加一层{} 形式一:sed 's/^[0-9]\{3\}/{&}/'example.txt 形式二:sed 's/^[0-9].*/{&}/'example.txt C.    使用a 命令追加行 格式:sed '[address] a the-line-to-append' input-file 示例: 1) 在文本的第2行后追加一行 sed '2 a 203,Jack Johnson,Engineer' employee.txt 2) 在文本最后追加一行 sed '$ a 106,Jack Johnson,Engineer' employee.txt 3) 在文本匹配处增加多行 sed '/Jason/a\ 203,Jack Johnson,Engineer\ 204,Mark Smith,Sales Engineer'employee.txt 注意:反斜杠“\”续行符的使用 D.    使用i命令插入行 格式:sed '[address] i the-line-to-insert' input-file 用法跟a命令类似,不同的是在匹配地址所有行之前 E.    使用c命令修改行 格式:sed '[address] c the-line-to-insert' input-file 意义不同,用法类似 F.     使用l命令打印隐藏字符 格式:sed –n l input-file G.   使用=命令打印行号 格式:sed = input-file 打印字符串所在行号 sed ‘/string/ =’ input-file H.   使用y命令作字符转换 格式: sed ‘y/original-string/replace-string/’ input-file 示例:sed 'y/abc/ABC/' employee.txt 可用于加密字符串 I.       使用q命令终止执行 示例:  sed ‘5 q’ input-file 执行完第5行后终止       sed‘/root/ q’ input-file匹配到root行后退出

上一篇:ibatis防止动态列错误
下一篇:对url中的参数进行URLEncode编码的实现

相关文章

相关评论