Linux - sed 文本操作
SED 是一项Linux指令,功能同awk类似,差别在于,sed简单,对列处理的功能要差一些,awk的功能复杂,对列处理的功能比较强大.
sed全称是:Stream EDitor
调用sed命令有两种形式: sed [options] 'command' file(s)
sed [options] -f scriptfile file(s)
# 工作模式 先读取资料、存入模式空间、对其进行编辑、再输出、再用下一行替换模式空间内容
sed 常用参数
-n # 输出由编辑指令控制(取消默认的输出,必须与编辑指令一起配合)
-i # 直接对文件操作
-e # 多重编辑
-r # 正则可不转移特殊字符 b # 跳过匹配的行
p # 打印
d # 删除
s # 替换
g # 配合s全部替换
i # 行前插入
a # 行后插入
r # 读
y # 转换
q # 退出 & # 代表查找的串内容
* # 任意多个 前驱字符(前导符)
? # 0或1个 最小匹配 没加-r参数需转义 \?
$ # 最后一行
.* # 匹配任意多个字符
\(a\) # 保存a作为标签1(\)
sed 模式空间
# 模式空间(两行两行处理) 模式匹配的范围,一般而言,模式空间是输入文本中某一行,但是可以通过使用N函数把多于一行读入模式空间
# 暂存空间里默认存储一个空行 n # 读入下一行(覆盖上一行)
h # 把模式空间里的行拷贝到暂存空间
H # 把模式空间里的行追加到暂存空间
g # 用暂存空间的内容替换模式空间的行
G # 把暂存空间的内容追加到模式空间的行后
x # 将暂存空间的内容于模式空间里的当前行互换
! # 对其前面的要匹配的范围取反
D # 删除当前模式空间中直到并包含第一个换行符的所有字符(/.*/匹配模式空间中所有内容,匹配到就执行D,没匹配到就结束D)
N # 追加下一个输入行到模式空间后面并在第二者间嵌入一个换行符,改变当前行号码,模式匹配可以延伸跨域这个内嵌换行
p # 打印模式空间中的直到并包含第一个换行的所有字符
sed 的标签函数
: lable # 建立命令标记,配合b,t函数使用跳转
b lable # 分支到脚本中带有标记的地方,如果分支不存在则分支到脚本的末尾。
t labe # 判断分支,从最后一行开始,条件一旦满足或者T,t命令,将导致分支到带有标号的命令出,或者到脚本末尾。与b函数不同在于t在执行跳转前会先检查其前一个替换命令是否成功,如成功,则执行跳转。 sed -e '{:p1;/A/s/A/AA/;/B/s/B/BB/;/[AB]\{10\}/b;b p1;}' # 文件内容第一行A第二行B:建立标签p1;两个替换函数(A替换成AA,B替换成BB)当A或者B达到10个以后调用b,返回
echo 'sd f f [a b c cddd eee]' | sed ':n;s#\(\[[^ ]*\) *#\1#;tn' # 标签函数t使用方法,替换[]里的空格
echo "198723124.03"|sed -r ':a;s/([0-9]+)([0-9]{3})/\1,\2/;ta' # 每三个字符加一个逗号
sed 引用外部变量方式
sed -n ''$a',10p'
sed -n ""$a",10p"
Linux - sed 文本操作的更多相关文章
- Linux Bash文本操作之sed篇其二
上一篇总结了sed的基础应用(Linux Bash文本操作之sed篇其一),内容实在有够多,这里再对稍微高级一些的用法做一个整理,以方便使用时查阅. 查看文本内容 示例1表示在第一到第四行匹配到的行后 ...
- Linux - sed 常用操作
sed 文本常用操作方式 sed 10q # 显示文件中的前10行 (模拟"head") sed -n '$=' # 计算行数(模拟 "wc -l") sed ...
- 【Linux】linux中文本操作利器grep,awk,sed
grep命令 grep(global search regular expression)是一种强大的文本搜索工具,它可以使用正则表达式搜索文本,并把匹配的行打印出来.平时搜索文本中内容的时候是非常方 ...
- Linux Bash文本操作之sed篇其一
作为Linux系统中文本处理的强力工具之一,sed功能强大,用法多变,值得我们好好学习. sed是用于过滤和转换文本的流编辑器. 一般情况下sed把当前处理的行存储在临时缓冲区,按指定命令处理之后将缓 ...
- Linux sed命令操作 删除文件每一行的前k个字符、在文本的行尾或行首添加字符
删除文件每一行的前k个字符 $ cat tmp.txt # 删除每行第一个字符 $ sed 's/.//' tmp.txt # 删除每行前两个字符 $ sed 's/..//' tmp.txt # 删 ...
- linux 常用文本操作相关命令
平时工作经常会对文本进行相关操作,包括读写.替换.统计等等,借此整理和学习一下有关命令. 1. cat 查看文件中的内容, -n 查看时为每一行加编号; -b 和-n类似,只不过对于空白行不编号: 2 ...
- linux sed文本
sed介绍 sed(stream editor)是一种非交互式的流编辑器,通过多种转换修改流经它的文本.默认情况下,sed不会改变原文件本身,而只是对流经sed命令的文本进行修改,并将修改后的结果打印 ...
- Linux Bash文本操作之grep篇
Linux grep命令用于查找文件里符合条件的字符串.是文本检索中常用的工具之一. grep 指令在文件中查找能够匹配指定模式字符串的行.如果没有指定文件名,或者文件名为 - ,则从标准输入设 ...
- linux之文本编辑器vi常用命令
由于经常在linux下面文本操作,所以这里稍微系统的总结一下自己常用的vi命令 1.打开命令: vi+filename (还有各种打开的姿势,只不过我比较顺手这个) 2.退出命令: :q 退出而 ...
随机推荐
- centos运行C程序
gcc -o Hello Hello.c 编译成可执行文件 ./Hello 运行 win上也是一样
- 软件工程 BUAAMOOC项目Postmortem结果
设想和目标 1.我们的软件要解决什么问题?是否定义的很清楚?是否对典型用户和典型场景有清晰的描述? 我们的软件是基于北航MOOC网站做的Android手机客户端,用于便捷的在学校里通过手机做到随时随地 ...
- OpenState安装及 Port Knocking 实验
OpenState安装及 Port Knocking 实验 目录 OpenState安装 Port Knocking 实验 OpenState安装及 Port Knocking 实验 OpenStat ...
- Beta版本冲刺(四)
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员:恺琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组 ...
- Django 图片上传、存储与显示
参考博客:http://www.cognize.me/2016/05/09/djangopic 开始之前要先安装python图像处理库:pip install --use-wheel Pillow 一 ...
- [Asp.net MVC]Asp.net MVC5系列——布局视图
目录 系列文章 概述 布局视图 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列——添加视图 [Asp.net M ...
- Docker(六)-Dcoker仓库
仓库 一个容易混淆的概念是注册服务器(Registry). 实际上注册服务器是管理仓库的具体服务器,每个服务器上可以有多个仓库,而每个仓库下面有多个镜像.从这方面来说, 仓库可以被认为是一个具体的项目 ...
- 【设计模式】—— 创建者模式Builder
前言:[模式总览]——————————by xingoo 模式意图 一个对象的创建十分复杂,为了区分构建过程和使用过程,因此分开.使用一个Director类进行对象的创建,Builder规定了这个创建 ...
- MT【101】分配问题举例若干
先拿MT[100]的图表镇楼. 举几个例子: [1]52张纸牌分发给4人,每人13张,问每人手中有一张小2的概率? 分析:第一步每人分一张小2,有4!种,然后48张牌平均分成4组有$\frac{48! ...
- LANMP环境编译参数查看方法
nginx编译参数查看:/usr/local/nginx/sbin/nginx -V apache编译参数查看:cat /usr/local/apache2/build/config.nice mys ...