系统小窝欢迎您

当前位置:系统小窝 > 系统教程 > Linux教程 >

Linux使用sed命令添加字符串的方法

时间:2021-04-10    来源:般砖的    人气:

添加Linux字符串有很多种方式,有一种就是在文本的首尾行添加字符串。本文就来介绍一下Linux使用sed命令添加字符串的方法。

用sed命令在行首或行尾添加字符的命令有以下几种:

假设处理的文本为test.file

在每行的头添加字符,比如;HEAD;,命令如下:

sed lsquo;s/^/HEAD/grsquo; test.file

在每行的行尾添加字符,比如;TAIL;,命令如下:

sed lsquo;s/$/TAIL/grsquo; test.file

运行结果如下图:

几点说明:

1.;^;代表行首,;$;代表行尾

2.lsquo;s/$/TAIL/grsquo;中的字符g代表每行出现的字符全部替换,如果想在特定字符处添加,g就有用了,否则只会替换每行第一个,而不继续往后找了

例:

3.如果想导出文件,在命令末尾加;》 outfile_name;;如果想在原文件上更改,添加选项;-i;,如

4.也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符;HEAD;、;TAIL;,命令:sed lsquo;/。/{s/^/HEAD/;s/$/TAIL/}rsquo; test.file

以上其实都还OK,昨天花太多时间,主要因为被处理的文件是用mysql从数据库提取的结果导出来的,别人给我之后我就直接处理,太脑残了= -我一直有点怀疑之所以结果不对,有可能是windows和linux换行的问题,可是因为对sed不熟,就一直在搞sed。

众所周知(= -),window和linux的回车换行之云云,如果你知道了,跳过这一段,不知道,读一下呗:

Unix系统里,每行结尾只有;《换行》;,即; ;;Windows系统里面,每行结尾是;《换行》《回 车》;,即; ;。一个直接后果是,Unix系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在 Unix下打开的话,在每行的结尾可能会多出一个^M符号。

好了,所以我的问题就出在被处理的文件的每行末尾都有^M符号,而这通常是看不出来的。可以用;cat -A test.file;命令查看。因此当我想在行尾添加字符的时候,它总是添加在行首且会覆盖掉原来行首的字符。

要把文件转换一下,有两种方法:

1.命令dos2unix test.file

2.去掉; ; ,用命令sed -i lsquo;s/ //rsquo; test.file

以上就是Linux使用sed命令添加字符串的方法了,还是那句话,Linux添加字符串的方法有很多。如果想要在文本的首尾行添加字符串,使用sed命令是最方便的了。

相关文章

发表评论

验证码: 看不清?点击更换

注:网友评论仅供其表达个人看法,并不代表本站立场。