from: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
运行结果如下图:

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

3.如果想导出文件,在命令末尾加"> outfile_name";如果想在原文件上更改,添加选项"-i",如(这里的-i,可以理解为其他命令执行后的结果重定向到原文件,所以-n p等参数会影响-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啦!!!

转载于:https://www.cnblogs.com/jiu0821/p/6268500.html

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

  1. linux 行首加特定字符_linux shell 用sed命令在文本的行尾或行首添加字符

    昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~ 用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.f ...

  2. sed搜索某行在行末追加_linux shell 用sed命令在文本的行尾或行首添加字符

    昨天写一个脚本花了一天的2/3的时间,而且大部分时间都耗在了sed命令上,今天不总结一下都对不起昨天流逝的时间啊~~~ 用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.f ...

  3. linux 行首加特定字符_Linux:用sed命令在文本的行尾或行首添加字符

    用sed命令在行首或行尾添加字符的命令有以下幾種: 假設處理的文本為test.file 在每行的頭添加字符,比如"HEAD",命令如下: sed 's/^/HEAD&/g' ...

  4. linux shell sed命令 在文本每行 行尾 或 行首 添加字符

    用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed "s/^/HEAD&am ...

  5. 【Linux脚本-sed命令在文本首行和尾行插入空行】

    @[TOC]Linux脚本-sed命令在文本首行和尾行插入空行 Linux脚本-sed命令在文本首行和尾行插入空行 演示如下: 首先创建需要操作的文本文件 //create a file contai ...

  6. linux shell sed i,Linux Shell学习-sed命令详解

    (1).sed介绍 Sed是流编辑器,stream editor,它是一个将一些列编辑命令作用于一批文本文件的理想工具. (2).sed工作原理 Sed是一个非交互式文本编辑器,它可以对文本文件和标准 ...

  7. linux下使用sed 命令来删除指定行

    "p" command prints the buffer (remember to use -n option with "p") "d" ...

  8. Linux实战教学笔记12:linux三剑客之sed命令精讲

    第十二节 linux三剑客之sed命令精讲 标签(空格分隔): Linux实战教学笔记-陈思齐 ---更多资料点我查看 1,前言 我们都知道,在Linux中一切皆文件,比如配置文件,日志文件,启动文件 ...

  9. linux中sed命令用例,Linux中使用sed命令或awk命令修改常规配置文件

    一.方案: Linux中使用sed命令或awk命令修改常规配置文件 二.步骤: 1.假设有一个a.txt,内容如下: #!/bin/bash aa= bbb= ccc= #ddd= 2.如果想要把里面 ...

最新文章

  1. 001_Ajax简介
  2. 10 i lt shell的if_shell学习(10)- if的使用
  3. SpringBoot学习笔记(一)整合Mybatis
  4. 21-爬虫之scrapy框架selenium的使用08
  5. 文献记录(part28)--A rotation and scale invariant approach for multi-oriented floor plan image ...
  6. HH SaaS电商系统的物流单设计
  7. 什么是机器人的五点校正法_机器人校正方法
  8. 10炫酷关机_Linux 中实用但很小众的 11 个炫酷终端命令
  9. mysql 关联数组_在PHP / MySQL查询中创建关联数组
  10. Linux基础——Linux 基本指令 ls 和 cd
  11. Ansys Lumerical Zemax Speos | CMOS 传感器相机:3D 场景中的图像质量分析
  12. 计算两经纬度坐标间的距离
  13. TCP报文段中的序号和确认号
  14. PHP获取上周一,获取指定日期的上周日期,上周一
  15. 用pyqt原生功能实现自由屏幕截图
  16. 百度数据可视化Sugar BI — 表计算
  17. 区块链技术如何赋能公共资源招采管理服务?
  18. 渗透学python的哪方面_渗组词_渗字组词
  19. 这姐姐呀的人工智能实训1:机器人语料库数据集准备
  20. P2P网络电视须跨6道坎 包括网络不可控问题

热门文章

  1. linux errno定义
  2. php7.2 event扩展php_sockets_le_socket错误解决
  3. 更改文件和目录(及子目录)的拥有者
  4. 在dos下运行.exe程序(C++)
  5. uni-app阻止事件冒泡
  6. [react] 简要描述下你知道的react工作原理是什么?
  7. 前端学习(3040):vue+element今日头条管理-上午回顾
  8. 前端学习(2938):vue对象之间的实例属性ref
  9. [html] 请说说你在写布局时对于浏览器兼容性的感受或总结
  10. 前端学习(2891):vue工程化配置