diff --git a/Linux_man_cn/sed.md b/Linux_man_cn/sed.md index ce6e5ff..0ea0c1f 100644 --- a/Linux_man_cn/sed.md +++ b/Linux_man_cn/sed.md @@ -32,7 +32,7 @@ sed脚本。其他非选项参数被视为输入文件,如果没有输入文 ### sed命令 -``` +```markdown a\ 在当前行下面插入文本 i\ 在当前行上面插入文本 c\ 把选定的行改为新的文本 @@ -53,11 +53,11 @@ b lable 分支到脚本中带有标记的地方,如果分支不存在则分 r file 从file中读行 t label if分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命处,或者到脚本的末尾 T label 错误分支,从最后一行开始,一旦发生错误或者T,t命令,将导致分支到带有标号的令处,或者到脚本的末尾 -w file 写并追加模板块到file末尾。 -W file 写并追加模板块的第一行到file末尾。 -! 表示后面的命令对所有没有被选定的行发生作用。 -= 打印当前行号码。 -# 把注释扩展到下一个换行符以前。 +w file 写并追加模板块到file末尾。 +W file 写并追加模板块的第一行到file末尾。 +! 表示后面的命令对所有没有被选定的行发生作用。 += 打印当前行号码。 +# 把注释扩展到下一个换行符以前。 ``` ### sed替换标记 @@ -79,7 +79,7 @@ y 表示把一个字符翻译为另外的字符(但是不用于正则表达 $ 匹配行结束,如:/sed$/匹配所有以sed结尾的行 . 匹配一个非换行符的任意字符,如:/s.d/匹配s后接一个任意字符,最后是d * 匹配0个或多个字符,如:/*sed/匹配所有模板是一个或多个空格后紧跟sed的行 -[] 匹配一个指定范围内的字符,如/[ss]ed/匹配sed和Sed。 +[] 匹配一个指定范围内的字符,如/[ss]ed/匹配sed和Sed。 [^] 匹配一个不在指定范围内的字符,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一个字开头,紧跟ed的行 \(..\) 匹配子串,保存匹配的字符,如s/\(love\)able/\1rs,loveable被替换成lovers & 保存搜索字符用来替换其他字符,如s/love/ & /,love这成 love @@ -152,7 +152,7 @@ comment sed -e '/test/h' -e '/check/x' file : << comment -保持和互换:h命令和x命令 +保持和互换:h命令和x命令 互换模式空间和保持缓冲区的内容。此例也就是把包含test与check的行互换 comment @@ -378,7 +378,7 @@ sed 's/.\x08//g' # sed 1.5,GNU sed,ssed所使用的十六进制的 sed '/^$/q' # 删除第一行空行后的所有内容,可用于提取新闻组或 e-mail 的邮件头 sed '1,/^$/d' # 删除第一行空行之前的所有内容,可用于提取新闻组或e-mail的正文部分 sed '/^Subject: */!d; s///;q' # 从邮件头提取“Subject”(标题栏字段),并移除开头的“Subject:”字样 -sed '/^Reply-To:/q; /^From:/h; /./d;g;q' # 从邮件头获得回复地址 +sed '/^Reply-To:/q; /^From:/h; /./d;g;q' # 从邮件头获得回复地址 sed 's/ *(.*)//; s/>.*//; s/.*[:<] *//' # 获取邮件地址。在上一个脚本所产生的那一行邮件头的基础上进一步的将非电邮地址的部分剃除。(见上一脚本) sed 's/^/> /' # 在每一行开头加上一个尖括号和空格(引用信息) sed 's/^> //' # 将每一行开头处的尖括号和空格删除(解除引用)