sed在行首或者行尾添加内容

摘要:
众所周知(=-),window和linux的回车换行之云云,如果你知道了,跳过这一段,不知道,读一下呗:Unix系统里,每行结尾只有“”,即“”;Windows系统里面,每行结尾是“”,即“”。一个直接后果是,Unix系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix下打开的话,在每行的结尾可能会多出一个^M符号。可以用"cat-Atest.file"命令查看。因此当我想在行尾添加字符的时候,它总是添加在行首且会覆盖掉原来行首的字符。

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

假设处理的文本为test.file

sed在行首或者行尾添加内容第1张

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

sed 's/^/HEAD&/g' test.file

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

sed 's/$/&TAIL/g' test.file

运行结果如下图:

sed在行首或者行尾添加内容第2张

几点说明:

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

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

例:

sed在行首或者行尾添加内容第3张

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

sed在行首或者行尾添加内容第4张

4.也可以把两条命令和在一起,在test.file的每一行的行头和行尾分别添加字符"HEAD"、“TAIL”,命令:sed '/./{s/^/HEAD&/;s/$/&TAIL/}' 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 's/ //' test.file

好了,这样处理完,就OK啦!!!

免责声明:文章转载自《sed在行首或者行尾添加内容》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇使用ShareSDK完成Facebook第三方登录和Facebook分享时没办法跳转到Facebook应用Function.prototype.call.bind下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux命令文件查看过滤

Linux命令篇 1.查看一个文件的后100行的命令: tail -n 100 Linux下查看文件前几行一般用head -n xx,查看后面几行用tail -n xx。除此之外,还有:     tail -n +1000:从1000行开始显示,显示1000行以后的 如果要查看这个文件中间的某几行,命令如下:     cat input_file | he...

java 接收 char字符型

import java.io.BufferedReader;import java.io.InputStreamReader;import java.util.Scanner;public class GetChar {public static void main(String[] args)throws Exception {//通过扫描类输入Scan...

管理aix的密码策略

aix 中/etc/security/user 存放用户的概要 常用参数参数如下1.account_locked defines whether the account is locked.locked accounts can not be used for login .possible values:true or false.定义账户是否被锁,被锁...

vc字符串转换处理:(绝对精华,收集所有的例子)

  vc字符串转换处理:(绝对精华,收集所有的例子) 1.头文件中要定义宏;         #define   UNICODE         #define   _UNICODE     //////////////////// char   buf[128];    memset(buf,0,128);     strcpy(buf,"你好"...

字符串右移

编写一个函数,要求输入一个字符串和要移动的位数n,使得该字符串能向右移动n位,输出移动后的字符串。例如:tomloveslily移动2位得lytomlovesli。 思路:把字符串变成两部分,交换位置,实际操作先把后n个字符保存起来,将strlen-n个字符往后移动n个位置,最后把n个字符放在前面(C语言) void right_move(char* st...

Eclipse项目中乱码问题的解决办法

一、产生的原因: 1、Http协议进行通信的时候是基于请求和响应的,传输的内容我们称之为报文! 2、Http协议会按照一定的规则将报文编码,然后在读取的时候再使用响应的解码格式进行解码! 3、这个一定的规则指的就是字符集:ASCII,iso8859-1,gbk,gb2312,utf-8 4、编码:将字符按照字符集转化为二进制格式 5、解码:将二进制代码按照...