如何在Unix下使用sed命令
# 以79个字符为宽度,使所有文本居中。在方法1中,为了让文本居中每一行的前头和后头都填充了空格。 在方法2中,在居中文本的过程中只在文本的前面填充空格,并且最终这些空格将有一半会被删除。此外每一行的后头并未填充空格。 sed -e :a -e 's/^.{1,77}$/ & /;ta' # 方法1 sed -e :a -e 's/^.{1,77}$/ &/;ta' -e 's/( *)1/1/' # 方法2 # 在每一行中查找字串“foo”,并将找到的“foo”替换为“bar” sed 's/foo/bar/' # 只替换每一行中的第一个“foo”字串 sed 's/foo/bar/4' # 只替换每一行中的第四个“foo”字串 sed 's/foo/bar/g' # 将每一行中的所有“foo”都换成“bar” sed 's/(。*)foo(。*foo)/1bar2/' # 替换倒数第二个“foo” sed 's/(。*)foo/1bar/' # 替换最后一个“foo” # 只在行中出现字串“baz”的情况下将“foo”替换成“bar” sed '/baz/s/foo/bar/g' # 将“foo”替换成“bar”,并且只在行中未出现字串“baz”的情况下替换 sed '/baz/!s/foo/bar/g' # 不管是“scarlet”“ruby”还是“puce”,一律换成“red” sed 's/scarlet/red/g;s/ruby/red/g;s/puce/red/g' #对多数的sed都有效 gsed 's/scarlet|ruby|puce/red/g' # 只对GNU sed有效 # 倒置所有行,第一行成为最后一行,依次类推(模拟“tac”)。由于某些原因,使用下面命令时HHsed v1.5会将文件中的空行删除。 sed '1!G;h;$!d' # 方法1 sed -n '1!G;h;$p' # 方法2 # 将行中的字符逆序排列,第一个字成为最后一字,……(模拟“rev”) sed '/n/!G;s/(。)(。*n)/&21/;//D;s/.//' # 将每两行连接成一行(类似“paste”) sed '$!N;s/n/ /' # 如果当前行以反斜杠“”结束,则将下一行并到当前行末尾,并去掉原来行尾的反斜杠 sed -e :a -e '/$/N; s/n//; ta' # 如果当前行以等号开头,将当前行并到上一行末尾,并以单个空格代替原来行头的“=” sed -e :a -e '$!N;s/n=/ /;ta' -e 'P;D' # 为数字字串增加逗号分隔符号,将“1234567”改为“1,234,567” gsed ':a;s/B[0-9]{3}>/,&/;ta' # GNU sed sed -e :a -e 's/(。*[0-9])([0-9]{3})/1,2/;ta' # 其他sed为带有小数点和负号的数值增加逗号分隔符(GNU sed) gsed -r ':a;s/(^|[^0-9.])([0-9]+)([0-9]{3})/12,3/g;ta' # 在每5行后增加一空白行(在第5,10,15,20,等行后增加一空白行) gsed '0~5G' # 只对GNU sed有效 sed 'n;n;n;n;G;' # 其他sed ============================================================= 4、选择性地显示特定行: # 显示文件中的前10行 (模拟“head”的行为) sed 10q # 显示文件中的第一行 (模拟“head -1”命令) sed q # 显示文件中的最后10行 (模拟“tail”) sed -e :a -e '$q;N;11,$D;ba' # 显示文件中的最后2行(模拟“tail -2”命令) sed '$!N;$!D' # 显示文件中的最后一行(模拟“tail -1”) sed '$!d' # 方法1 sed -n '$p' # 方法2 # 显示文件中的倒数第二行 sed -e '$!{h;d;}' -e x # 当文件中只有一行时,输入空行 sed -e '1' -e '$!{h;d;}' -e x # 当文件中只有一行时,显示该行 sed -e '1' -e '$!{h;d;}' -e x # 当文件中只有一行时,不输出 # 只显示匹配正则表达式的行(模拟“grep”) sed -n '/regexp/p' # 方法1 sed '/regexp/!d' # 方法2 查看本栏目更多精彩内容:http://www.bianceng.cn/OS/unix/ (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |