节选自sed1line
# 在匹配式样“regex”的行之前和之后各插入一空行
sed '/regex/{x;p;x;G;}'
#删除所有偶数行
sed 'n;d'
# 为文件中的每一行进行编号(简单的左对齐方式)。这里使用了“制表符”
# (tab,见本文末尾关于'\t'的用法的描述)而不是空格来对齐边缘。
sed = filename | sed 'N;s/\n/\t/'
# 将每一行前导的“空白字符”(空格,制表符)删除
# 使之左对齐
sed 's/^[ \t]*//'
# 将每一行拖尾的“空白字符”(空格,制表符)删除
sed 's/[ \t]*$//'
# 将每一行中的前导和拖尾的空白字符删除
sed 's/^[ \t]*//;s/[ \t]*$//'
# 在每一行中查找字串“foo”,并将找到的“foo”替换为“bar”
sed 's/foo/bar/' # 只替换每一行中的第一个“foo”字串
sed 's/foo/bar/4' # 只替换每一行中的第四个“foo”字串
sed 's/foo/bar/g' # 将每一行中的所有“foo”都换成“bar”
sed 's/\(.*\)foo\(.*foo\)/\1bar\2/' # 替换倒数第二个“foo”
sed 's/\(.*\)foo/\1bar/' # 替换最后一个“foo”
# 将“foo”替换成“bar”,并且只在行中未出现字串“baz”的情况下替换
sed '/baz/!s/foo/bar/g'
# 显示部分文本——指定行号范围(从第8至第12行,含8和12行)
sed -n '8,12p' # 方法1
sed '8,12!d' # 方法2
# 显示第52行
sed -n '52p' # 方法1
sed '52!d' # 方法2
sed '52q;d' # 方法3, 处理大文件时更有效率
# 显示两个正则表达式之间的文本(包含)
sed -n '/Iowa/,/Montana/p' # 区分大小写方式
# 删除文件顶部的所有空行
sed '/./,$!d
# 移除手册页(man page)中的nroff标记。
sed 's/.^H//g' # 在bash或tcsh中, 按 Ctrl-V 再按 Ctrl-H
# 显示包含“AAA”、“BBB”或“CCC”的行(任意次序)
sed '/AAA/!d; /BBB/!d; /CCC/!d' # 字串的次序不影响结果
# Unix环境:转换DOS的新行符(CR/LF)为Unix格式。
sed 's/^M$//' # 在bash/tcsh中,将按Ctrl-M改为按Ctrl-V
小技巧:
速度优化:当由于某种原因(比如输入文件较大、处理器或硬盘较慢等)需要提高
命令执行速度时,可以考虑在替换命令(“s/.../.../”)前面加上地址表达式来
提高速度。举例来说:
sed 's/foo/bar/g' filename # 标准替换命令
sed '/foo/ s/foo/bar/g' filename # 速度更快
sed '/foo/ s//bar/g' filename # 简写形式
当只需要显示文件的前面的部分或需要删除后面的内容时,可以在脚本中使用“q”
命令(退出命令)。在处理大的文件时,这会节省大量时间。因此:
sed -n '45,50p' filename # 显示第45到50行
sed -n '51q;45,50p' filename # 一样,但快得多
分享到:
相关推荐
sed 和 awk 都是 Linux 下常用的流编辑器,他们各有各的特色,本文并不是要做什么对比,而是权当好玩,把《SED 单行脚本快速参考》这文章,用 awk 做了一遍~ 至于孰好孰坏,那真是很难评论了。一般来说,sed 的命令...
sed 常用单行命令!
sed和awk单行命令比较,通过例题来比较,详细说明了sed和awk的区别
英文标题:USEFUL ONE-LINE SCRIPTS FOR SED (Unix stream editor) 原标题:HANDY ONE-LINERS FOR SED (Unix stream editor) 整理:Eric Pement – 电邮:pemente[at]northpark[dot]edu 版本5.5 译者:Joe Hong – ...
Sed 单行脚本命令 快速参考 pdf 中文
SED单行脚本快速参考(Unix 流编辑器) sed命令使用说明
sed是一个非交互式的流编辑器。所谓非交互式,是指使用sed只能在命令行下输入编辑命令来编辑文本,然后在屏幕上查看输出
sed脚本的代码格式Sedsed可以将模糊的单行代码转换为可读的缩进代码: $ sedsed --indent ' :a;s/<[^>]*>//g;/</{N;ba;} ':as/<[^>]*>//g/</ { N b a} 将您的脚本转换为HTML,以获取代码格式,美观的...
它可以将一组字符变成另一组字符,经常用来编写优美的单行命令,作用很强大。 tr的英文全称是“ transform ”,即转换的意思。tr他只能从标准输入中读取数据,因此,tr要么将输入文件重定向到标准输入,要么从管道...
flatcat的主要目的是允许使用标准UNIX文件命令(例如grep , awk和sed来解析嵌套和分层文件格式(例如JSON,TOML,YAML等)。这些文件已成为事实上的配置标准,但是很少支持处理这些文件。 在这里, flatcat通过将...
sed:用来把文档或字符串里面的文字经过一系列编辑命令 // 从/script/ip读取单行数据后打印出来 sed -n '1p' /script/ip iptables:是与新的 3.5 版本 Linux 内核集成的 IP信息包过滤系统 iptables -t...
本文将介绍Linux下使用Shell处理文本时最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;提供的例子和参数都是最常用和最为...对shell脚本使用的原则是命令单行书写,尽量不要超过2行;
日常开发中,我们经常需要在服务器上进行各种文本,日志的查看操作,本文主要对常用的文本,日志查看技巧进行了一番总结和归纳,方便大家收藏起来后续查看使用: tail命令查看日志信息 实时监控日志: tail -f ...
可以使用单行终端命令替换template-python repo名称: git grep -l 'template-python' | xargs sed -i '' 's/template-python/repo-name/g' (用您生成的存储库名称替换repo-name )。可能还需要对pyproject.toml...
您提供了用香草JavaScript编写的功能强大的单行代码片段。 它支持许多输入格式,包括纯文本,CSV,JSON,HTML和XML。 pjs的工作原理是从提供的脚本中生成一个完整的JS程序,并将其输入到标准输入的每一行中。 可以...
第24章 单行文本处理 24.1 显示特殊域 24.2 指定域分隔符 24.3 简单的模式匹配 24.4 几个值的匹配域 24.5 确定域的数目 24.6 确定最后一个域 24.7 确定倒数第二个域 24.8 给awk传送变量 24.9 在一定条件下使用给awk...