SED单行脚本快速参考Word文件下载.docx
- 文档编号:15905602
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:29
- 大小:33.20KB
SED单行脚本快速参考Word文件下载.docx
《SED单行脚本快速参考Word文件下载.docx》由会员分享,可在线阅读,更多相关《SED单行脚本快速参考Word文件下载.docx(29页珍藏版)》请在冰豆网上搜索。
--------
#在每一行后面增加一空行
sedG
#将原来的所有空行删除并在每一行后面增加一空行。
#这样在输出的文本中每一行后面将有且只有一空行。
sed'
/^$/d;
G'
#在每一行后面增加两行空行
G;
#将第一个脚本所产生的所有空行删除(即删除所有偶数行)
n;
d'
#在匹配式样“regex”的行之前插入一空行
/regex/{x;
p;
x;
}'
#在匹配式样“regex”的行之后插入一空行
/regex/G'
#在匹配式样“regex”的行之前和之后各插入一空行
编号:
#为文件中的每一行进行编号(简单的左对齐方式)。
这里使用了“制表符”
#(tab,见本文末尾关于'
\t'
的用法的描述)而不是空格来对齐边缘。
sed=filename|sed'
N;
s/\n/\t/'
#对文件中的所有行编号(行号在左,文字右端对齐)。
s/^//;
s/*\(.\{6,\}\)\n/\1/'
#对文件中的所有行编号,但只显示非空白行的行号。
/./='
filename|sed'
/./N;
s/\n//'
#计算行数(模拟"
wc-l"
)
sed-n'
$='
文本转换和替代:
#Unix环境:
转换DOS的新行符(CR/LF)为Unix格式。
s/.$//'
#假设所有行以CR/LF结束
s/^M$//'
#在bash/tcsh中,将按Ctrl-M改为按Ctrl-V
s/\x0D$//'
#ssed、gsed3.02.80,及更高版本
转换Unix的新行符(LF)为DOS格式。
sed"
s/$/`echo-e\\\r`/"
#在ksh下所使用的命令
s/$'
"
/`echo\\\r`/"
#在bash下所使用的命令
s/$/`echo\\\r`/"
#在zsh下所使用的命令
s/$/\r/'
#gsed3.02.80及更高版本
#DOS环境:
转换Unix新行符(LF)为DOS格式。
s/$//"
#方法1
sed-np#方法2
转换DOS新行符(CR/LF)为Unix格式。
#下面的脚本只对UnxUtilssed4.0.7及更高版本有效。
要识别UnxUtils版本的
#sed可以通过其特有的“--text”选项。
你可以使用帮助选项(“--help”)看
#其中有无一个“--text”项以此来判断所使用的是否是UnxUtils版本。
其它DOS
#版本的的sed则无法进行这一转换。
但可以用“tr”来实现这一转换。
s/\r//"
infile>
outfile#UnxUtilssedv4.0.7或更高版本
tr-d\r<
infile>
outfile#GNUtr1.22或更高版本
#将每一行前导的“空白字符”(空格,制表符)删除
#使之左对齐
s/^[\t]*//'
#见本文末尾关于'
用法的描述
#将每一行拖尾的“空白字符”(空格,制表符)删除
s/[\t]*$//'
#将每一行中的前导和拖尾的空白字符删除
s/^[\t]*//;
#在每一行开头处插入5个空格(使全文向右移动5个字符的位置)
s/^//'
#以79个字符为宽度,将所有文本右对齐
sed-e:
a-e'
s/^.\{1,78\}$/&
/;
ta'
#78个字符外加最后的一个空格
#以79个字符为宽度,使所有文本居中。
在方法1中,为了让文本居中每一行的前
#头和后头都填充了空格。
在方法2中,在居中文本的过程中只在文本的前面填充
#空格,并且最终这些空格将有一半会被删除。
此外每一行的后头并未填充空格。
s/^.\{1,77\}$/&
/;
#方法1
-e'
s/\(*\)\1/\1/'
#方法2
#在每一行中查找字串“foo”,并将找到的“foo”替换为“bar”
s/foo/bar/'
#只替换每一行中的第一个“foo”字串
s/foo/bar/4'
#只替换每一行中的第四个“foo”字串
s/foo/bar/g'
#将每一行中的所有“foo”都换成“bar”
s/\(.*\)foo\(.*foo\)/\1bar\2/'
#替换倒数第二个“foo”
s/\(.*\)foo/\1bar/'
#替换最后一个“foo”
#只在行中出现字串“baz”的情况下将“foo”替换成“bar”
/baz/s/foo/bar/g'
#将“foo”替换成“bar”,并且只在行中未出现字串“baz”的情况下替换
/baz/!
#不管是“scarlet”“ruby”还是“puce”,一律换成“red”
s/scarlet/red/g;
s/ruby/red/g;
s/puce/red/g'
#对多数的sed都有效
gsed'
s/scarlet\|ruby\|puce/red/g'
#只对GNUsed有效
#倒置所有行,第一行成为最后一行,依次类推(模拟“tac”)。
#由于某些原因,使用下面命令时HHsedv1.5会将文件中的空行删除
1!
h;
$!
$p'
#将行中的字符逆序排列,第一个字成为最后一字,……(模拟“rev”)
/\n/!
s/\(.\)\(.*\n\)/&
\2\1/;
//D;
s/.//'
#将每两行连接成一行(类似“paste”)
s/\n//'
#如果当前行以反斜杠“\”结束,则将下一行并到当前行末尾
#并去掉原来行尾的反斜杠
/\\$/N;
s/\\\n//;
ta'
#如果当前行以等号开头,将当前行并到上一行末尾
#并以单个空格代替原来行头的“=”
s/\n=//;
P;
D'
#为数字字串增加逗号分隔符号,将“1234567”改为“1,234,567”
:
a;
s/\B[0-9]\{3\}\>
/,&
#GNUsed
s/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;
#其他sed
#为带有小数点和负号的数值增加逗号分隔符(GNUsed)
gsed-r'
s/(^|[^0-9.])([0-9]+)([0-9]{3})/\1\2,\3/g;
#在每5行后增加一空白行(在第5,10,15,20,等行后增加一空白行)
0~5G'
'
选择性地显示特定行:
#显示文件中的前10行(模拟“head”的行为)
sed10q
#显示文件中的第一行(模拟“head-1”命令)
sedq
#显示文件中的最后10行(模拟“tail”)
$q;
11,$D;
ba'
#显示文件中的最后2行(模拟“tail-2”命令)
#显示文件中的最后一行(模拟“tail-1”)
#显示文件中的倒数第二行
sed-e'
{h;
d;
-ex#当文件中只有一行时,输入空行
1{$q;
-ex#当文件中只有一行时,显示该行
1{$d;
-ex#当文件中只有一行时,不输出
#只显示匹配正则表达式的行(模拟“grep”)
/regexp/p'
/regexp/!
#只显示“不”匹配正则表达式的行(模拟“grep-v”)
p'
#方法1,与前面的命令相对应
/regexp/d'
#方法2,类似的语法
#查找“regexp”并将匹配行的上一行显示出来,但并不显示匹配行
/regexp/{g;
};
h'
#查找“regexp”并将匹配行的下一行显示出来,但并不显示匹配行
/regexp/{n;
#显示包含“regexp”的行及其前后行,并在第一行之前加上“regexp”所
#在行的行号(类似“grep-A1-B1”)
sed-n-e'
/regexp/{=;
g;
D;
-eh
#显示包含“AAA”、“BBB”或“CCC”的行(任意次序)
/AAA/!
/BBB/!
/CCC/!
#字串的次序不影响结果
#显示包含“AAA”、“BBB”和“CCC”的行(固定次序)
/AAA.*BBB.*CCC/!
#显示包含“AAA”“BBB”
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SED 单行 脚本 快速 参考