linux shell 用sed命令在文本的行尾或行首添加字符

linux 专栏收录该内容
45 篇文章 0 订阅

http://www.cnblogs.com/aaronwxb/archive/2011/08/19/2145364.html

昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~

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

假设处理的文本为test.file

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

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

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

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


sed 's/\(.\)\{3\}$//' file

去掉文件最后 3 个字符

运行结果如下图:

几点说明:

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

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

例:

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

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

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

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

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

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

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

1.命令dos2unix test.file

2.去掉"\r" ,用命令sed -i 's/\r//' test.file

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

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

文件为doc版,可自转成txt,手机上看挺好的。 本资源来自网络,如有纰漏还请告知,如觉得还不错,请留言告知后来人,谢谢!!!!! 入门学习Linux必会60个命令实例详解 Linux必学的60个命令 Linux提供了大量的命令,利它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,Linux系统上工作离不开使系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux版的命令数量不一样,但Linux版本最少的命令也有200多个。这里笔者把比较重要和使频率最多的命令,按照它们系统中的作分成下面六个部分一一介绍。 ◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例,介绍Linux下的安装和登录命令。 immortality按:请ctrl+f本页中查找某一部分的内容某一命令法。 -------------------------------------------------------------------------------- Linux必学的60个命令(1)-安装与登陆命令 login 1.作 login的作是登录系统,它的使权限是所有户。 2.格式 login [name][-p ][-h 主机名称] 3.主要参数 -p:通知login保持现的环境参数。 -h:来向远程登录的之间传输户名。 如果选择命令模式登录Linux的话,那么看到的第一个Linux命令就是login:。 一般界面是这样的: Manddrake Linux release 9.1(Bamboo) for i586 renrel 2.4.21-0.13mdk on i686 / tty1 localhost login:root password: 上面代码中,第一Linux版本号,第二是内核版本号和登录的虚拟控制台,我们第三输入登录名,按“Enter”键Password后输入账户密码,即可登录系统。出于安全考虑,输入账户密码时字符不会屏幕上回显,光标也不移动。 登录后会看到下面这个界面(以超级户为例): [root@localhost root]# last login:Tue ,Nov 18 10:00:55 on vc/1 上面显示的是登录星期、月、日、时间和使的虚拟控制台。 4.应技巧 Linux 是一个真正的多户操作系统,可以同时接受多个户登录,还允许一个户进多次登录。这是因为Linux和许多版本的Unix一样,提供了虚拟控制台的访问方式,允许同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进多次登录。每个虚拟控制台可以看作是一个独立的工作站,工作台之间可以切换。虚拟控制台的切换可以通过按下Alt键和一个功能键来实现,通常使F1-F6 。 例如,户登录后,按一下“Alt+ F2”键,户就可以看到上面出现的“login:”提示符,说明户看到了第二个虚拟控制台。然后只需按“Alt+ F1”键,就可以回到第一个虚拟控制台。一个新安装的Linux系统允许户使“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。虚拟控制台最有的是,当一个程序出错造成系统死锁时,可以切换到其它虚拟控制台工作,关闭这个程序。 shutdown 1.作 shutdown命令的作是关闭计算机,它的使权限是超级户。 2.格式 shutdown [-h][-i][-k][-m][-t] 3.重要参数 -t:改变到其它运级别之前,
©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值