Linux的Shell--Sed操作(指定行增加删除内容)
一、在某行(指具体行号)前或后加一行内容
#第4行末尾追加一行,内容为test
sed -i 'N;4atest' test.txt
#第4行行首追加一行,内容为test
sed -i 'N;4itest' test.txt #匹配到test字段的行行首插入一行
find . -name test.txt|xargs sed -i '/test/i <!--'
#匹配到test字段的行行末插入一行
find . -name test.txt|xargs sed -i '/test/a -->' #所有行首增加
sed -i 's/^/ABC/' test.txt
#所有行尾添加
sed -i 's/$/XYZ/' test.txt#第5行添加文件a.txt的内容
sed -i '5 r a.txt' test.txt#oooo行文件a.txt的内容
sed -i '/oooo/r a.txt' 5.txt
二、删除操作
#删除指定行,例如第5行
sed -i '5 d' test.txt#删除首行
sed -i '1d' test.txt#删除末行
sed -i '$d' test.txt#删除空行
sed -i '/^$/d' test.txt#剔除空格
sed -i 's/[ ]*//g' test.txt#删除车符
sed -i 's/^M//g' test.txt#删除指定字段的下一行
sed -i '/test/{n;d}' test.txt #匹配到test字段#删除指定字段的上一行
sed -i -e :a -e '$!N;s/.*n(.*test)/1/;ta' -e 'P;d' test.txt #匹配到test字段
三、其他操作
#将所有的行合并成一行,并用指定字符分割
sed ':a;N;$!ba;s/\n/,/g' test.txt更多操作,请man sed
示例请参考:http://blog.csdn.net/m0_37886429/article/details/79034190
四、处理以下文件内容的命令
awk '/^ +/{p++}/^?/{t=s=0;v++;k[v]=p;p=0;next}!t&&!/^[0-9]/{s++;a[s]=a[s]?a[s]"\t"$0:$0;}/^[0-9]+/{m[++q]=$0;if($0>n) n=$0}
END{for(i=1;i<=n;i++) {print a[i];if(i<=v) {t=t?t"\t"m[i]:m[i];d=d?d"\t?":"\n?"}}print t,d}' 文件名
执行效果:
文件内容(截取部分数据,好多内容都是):
每个问号之间都是文本内容,格式如上图所示
扩展:用php程序处理这个文件
<?php
$i = 1;
foreach(explode('?',file_get_contents('ab.txt')) as $loop){$loop = trim($loop);if( !$loop ) continue;$cards = array();foreach(explode("\n",$loop) as $line){if( preg_match('/(\d+)\s([\d\w]+)/',$line,$m) ){$count = intval($m[1]);$card = trim($m[2]);$cards[$card] = $count;}}$key = ''.implode(' ',array_keys($cards)).'';$val = implode(' ',$cards);
// $sql = "replace into c2030($key) value($val);\n";$sql = "$key\n$val\n";echo "$sql";$i++;
}
Linux的Shell--Sed操作(指定行增加删除内容)相关推荐
- sed搜索某行在行末追加_Linux的Shell--Sed操作(指定行增加删除内容)
#-----------在某行(指具体行号)前或后加一行内容----------- linux vi命令删除一行 #第4行末尾追加一行,内容为test sed -i 'N;4atest' test.t ...
- Linux命令 查看文件中指定行号的内容
前言 有一个很大很大的文件,比如10G. 我想看看10000行到20000行之间的内容 我想看看前100行的内容 我想看看最后100行的内容 - 办法 Linux使用命令查看文件指定行号的内容,有下面 ...
- sed在指定行上删除和添加字符
欢迎转载!转载时请注明出处:http://blog.csdn.net/nfer_zhuang/article/details/44020599 引言 我在一个项目中需要发布版本,两个客户的需求基本相同 ...
- linux shell 输出文件 指定行
在Linux系统上如何快速查看文本中指定行呢?有时文本较大比如有10w行,想要快速查看第99行该怎么做呢? 本文以文件名test.txt为例,介绍3种方式快速查看test.txt的第99行.相信你可以 ...
- bash shell sed 获取第一行_老司机给出的关于 shell 脚本的8个建议,必收!
这八个建议,来源于键者几年来编写 shell 脚本的一些经验和教训.事实上开始写的时候还不止这几条,后来思索再三,去掉几条无关痛痒的,最后剩下八条.毫不夸张地说,每条都是精挑细选的,虽然有几点算是老生 ...
- Linux下在文件内部指定行(首行、末尾行等)插入内容
1.在文件的首行插入指定内容: :~$ sed -i "1i#! /bin/sh -" a 执行后,在a文件的第一行插入#! /bin/sh - 2.在文件的指定行(n)插入指定内 ...
- sed在指定行插入新行
sed命令常用到的两个选项: -i : 直接在文件上编辑 (edit files in place) -e[默认选项]:只在命令行输出,而文件不改变 (add the script to the co ...
- Linux 命令之 ls -- 列出指定目录下的内容
文章目录 一.命令介绍 二.语法格式 三.常用选项 四.参考示例 (一)显示工作目录下(当前目录)所有的文件和目录 (二)显示工作目录下所有的文件和目录 (三)显示文件的详细信息,且显示文件的修改时间 ...
- linux 命令sed命令指定行或匹配行插入行
sed -i "231s:.*:hello:g" file #将第231行的所有字符替换为hellosed -i '$d' file #将文件file的最后一行删除sed -i & ...
最新文章
- 《大型网站技术架构》《K8S进阶实战》等书籍!送45本!读完工资多个0!
- Eclipse启动出现“Failed to create the Java Virtual Machine”错误
- 教育类产品如何快速建立师生关联关系?
- pytagcloud支持中文(汉仪全唐诗体简)
- 8.用MyEclipse进行JSP开发
- drawer的用法_MMDrawerController抽屉侧边栏的简单使用
- 中国政法大学政治与公共管理学院丛日云教授在毕业典礼上的演讲在网络上暴红,
- DevOps使用教程 华为云(16)git 日志记录 比较2次提交差异
- Android Studio 通过一个登录功能介绍SQLite数据库的使用
- php mysql简单分页代码_用php制作简单分页(从数据库读取记录)的方法详解
- 回声消除技术原理与解决办法
- 电镜的成像原理-透射电镜成像原理1
- fabric 中 peer 和 couch 容器内部数据存放目录地址
- Bouncing Ball (dp)
- 远程监控系统中关于TP-Link路由器的设置方法
- 西安工业大学计算机学院团委,西安工业大学计算机学院人工智能与仿真研究所...
- elementUI输入框只能输入数字解决方案
- 四川铺管家:拼多多产品布局怎么做
- 三维视觉论文阅读:RAFT2020双目光流
- 解决scrapy爬虫报错 pymongo.errors.DuplicateKeyError: E11000 duplicate key error collection
热门文章
- html中选择器eq,jQuery 选择器之eq是什么意思
- 卡巴斯基推出上网本专用杀毒软件
- 三星NC10、ND10上网本Fedora11、Fedora12下屏幕亮度调节
- idea html注释,IntelliJ IDEA文档注释
- 不爱代码的程序媛的大学四年
- 闭关修炼,快速提高自己的技术水平
- svmtrain笔记----svmtrian函数
- thinkphp出现 Forbidden You don‘t have permission to access / on this server. Additionally, a 403 Forbi
- “造趣文化节,无Party不夏天”主题活动开启潮流文化新体验
- 国际奥委会正式收回阿姆斯特朗悉尼奥运会铜牌