如何在Unix下使用sed命令
1、常用方法 # 在每一行后面增加一空行 sed G # 将原来的所有空行删除并在每一行后面增加一空行。 # 这样在输出的文本中每一行后面将有且只有一空行。 sed '/^$/d;G' # 在每一行后面增加两行空行 sed 'G;G' # 将第一个脚本所产生的所有空行删除(即删除所有偶数行) sed 'n;d' # 在匹配式样“regex”的行之前插入一空行 sed '/regex/{x;p;x;}' # 在匹配式样“regex”的行之后插入一空行 sed '/regex/G' # 在匹配式样“regex”的行之前和之后各插入一空行 sed '/regex/{x;p;x;G;}' ============================================================= 2、编号 # 为文件中的每一行进行编号(简单的左对齐方式)。这里使用了“制表符”(tab,见本文末尾关于't'的用法的描述)而不是空格来对齐边缘。 sed = filename | sed 'N;s/n/t/' # 对文件中的所有行编号(行号在左,文字右端对齐)。 sed = filename | sed 'N; s/^/ /; s/ *(。{6,})n/1 /' # 对文件中的所有行编号,但只显示非空白行的行号。 sed '/./=' filename | sed '/./N; s/n/ /' # 计算行数 (模拟 "wc -l") sed -n '$=' ============================================================= 3、文本转换和替代: # Unix环境:转换DOS的新行符(CR/LF)为Unix格式。 sed 's/.$//' # 假设所有行以CR/LF结束 sed 's/^M$//' # 在bash/tcsh中,将按Ctrl-M改为按Ctrl-V sed 's/x0D$//' # ssed、gsed 3.02.80,及更高版本 # Unix环境:转换Unix的新行符(LF)为DOS格式。 sed "s/$/`echo -e r`/" # 在ksh下所使用的命令 sed 's/$'"/`echo r`/" # 在bash下所使用的命令 sed "s/$/`echo r`/" # 在zsh下所使用的命令 sed 's/$/r/' # gsed 3.02.80 及更高版本 # DOS环境:转换Unix新行符(LF)为DOS格式。 sed "s/$//" # 方法 1 sed -n p # 方法 2 (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |