Linux下如何使用sed命令替换字符串

2016-02-19 16:22 11 1 收藏

今天天气好晴朗处处好风光,好天气好开始,图老师又来和大家分享啦。下面给大家推荐Linux下如何使用sed命令替换字符串,希望大家看完后也有个好心情,快快行动吧!

【 tulaoshi.com - Linux教程 】

了解Linux系统命令的相比都知道,sed命令常用于文本文件的处理,今天图老师小编就给大家介绍下如何使用sed命令替换字符串,感兴趣的朋友不妨来了解下吧。

Linux下如何使用sed命令替换字符串

sed替换的基本语法为:

代码如下:

sed ‘s/原字符串/替换字符串/’

单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线进行转义,但是单引号‘是没有办法用反斜线转义的,这时候只要把命令中的单引号改为双引号就行了,例如:

代码如下:

sed s/原字符串包含‘/替换字符串包含’/ //要处理的字符包含单引号

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

命令中的三根斜线分隔符可以换成别的符号,这在要替换的内容有较多斜线是较为方便,只需要紧跟s定义即可,例如换成问号?:

代码如下:

sed ‘s?原字符串?替换字符串?’ //自定义分隔符为问号

可以在末尾加g替换每一个匹配的关键字,否则只替换每行的第一个,例如:

代码如下:

sed ‘s/原字符串/替换字符串/’ //替换所有匹配关键字

上箭头^表示行首,美元$符号如果在引号中表示行尾,但是在引号外却表示末行(最后一行),这里犯二了,搜了半天哪个符号表示首行,半天才想起来,首行就是数字1″啊。那么在行首和行尾添加字符串就是把行尾和行首替换,例如:

代码如下:

sed ‘s/^/添加的头部&/g’ //在所有行首添加

sed ‘s/$/&添加的尾部/g’ //在所有行末添加

sed ‘2s/原字符串/替换字符串/g’ //替换第2行

sed ‘$s/原字符串/替换字符串/g’ //替换最后一行

sed ‘2,5s/原字符串/替换字符串/g’ //替换2到5行

sed ‘2,$s/原字符串/替换字符串/g’ //替换2到最后一行

替换样式可以多个在同一条命令中执行,用分号;分隔,例如:

代码如下:

sed ‘s/^/添加的头部&/g;s/$/&添加的尾部/g’ //同时执行两个替换规则

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

sed处理过的输出是直接输出到屏幕上的,要保存可以将输出重定向,或者使用参数i直接在文件中替换:

代码如下:

sed -i ‘s/原字符串/替换字符串/g’ filename //替换文件中的所有匹配项

上面就是Linux下使用sed命令替换字符串的方法介绍了,sed命令的用法远不止这些,本文只是举个例子给大家简单介绍下sed命令,想要使用sed命令替换字符串的朋友可以做个参考。

来源:http://www.tulaoshi.com/n/20160219/1611855.html

延伸阅读
大家都知道,&操作符的执行速度是相当慢的,特别是处理长字符串时。当必须重复地在同一变量上附加字符时,有一个基于Mid$命令的技巧可以使用。基本思路就是:预留一个足够长的空间存放操作的结果。下面是应用这个技术的一个例子。 假设要建立一个字符串,它要附加从1开始的10000个整数:"1234567...9999 10000"。下面是最简单的实现代码: ...
标签: 电脑入门
字符串格式定义 printf()函数 printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为: printf("格式化字符串", 参量表); 其中格式化字符串包括两部分内容: 一部分是正常字符, 这些字符将按原样输出; 另一部分是格式化规定字符, 以"%"开始...
VB官方文档似乎很鼓励使用"无$"类字符串函数,比如:Left、LTrim或者UCase,而不是实现同样功能的Left$、LTrim$和UCase$函数。但是我们必须认识到:前者返回variant类型的数值,当用于字符串表达式中时,最终必须要转换为字符串(string)类型。 因此,在严格要求时间的代码段中,我们应该使用后者,它们将快5-10。 ->
create or replace procedure ModifyLadingItemPack (   ASoditemguid varchar2,                  --合同电子仓单明细GUID   ALadingitemGUID varchar2,             &nb...
标签: ASP
  string[] A; string B = "abcd@@efg@@sdff;"; string C=abcde@efgasdfl@sdlfjs; 如果要分割C很容易,只需如此即可: A = C.Split('@'); 结果: A[0] = "abcde"; A[1] = "efgasdfl"; A[2] = "sdlfjs"; 如果要分割B呢?最简单的办法就是先把@@替换为单字符串了。 A = B.Replace("@@","$").Split('$'); A[0] = "abcd"; A[1] = "efg"; ...

经验教程

982

收藏

35
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部