例4:将一嵝内容变为一行
例5:求出1-100的乞降
.:匹配除换行符以外的单个字符 /m..y/ 匹配包含字母m,后跟两个随便率性字符,再跟字母y的行;
x\{m,n\}:至少m个,但不跨越n个x 如:/9\{5,7\}/ 匹配包含持续5到7个9的行。 还有一个单位匹配--调换的问题:
例6:打印输出奇数行和偶数行
例2:用sed模仿倒序(tac)打印的过程
【编辑推荐】
- Linux桌面体系的优势
- 9个拭魅战及面试常用Shell脚本编写
- 黑屏操作利器,多屏批量shell敕令发送
- Stack Clash安然马脚将Linux及其他UNIX操作体系的root拜访权拱手交给任何人!
- ps_mem:一个用于精确申报Linux核心内存用量的简单Python脚本
5.应用标签
[plain] view plain copy
:a表示标签a;
ba表示跳转到a标签;
$表示最后一行;
!表示不做后续操作
所以,$!ba表示最后一行不消跳转到a标签,停止此次操作。
最后弥补一点:
[plain] view plain copy
与grep一样,sed也支撑特别元字符来进行模式查找、调换。不合的是,sed应用的┞俘则表达式是括在斜杠线"/"之间的模式。
如不雅要把正则表达式分隔符"/"改为另一个字符,比如o,只要在这个字符前加一个反斜线,在字符后跟上正则表达式,再跟上这个字符即可。例如:sed -n '\o^56op' datafile
^:行首定位符 /^my/ 匹配所有以my开首的行;
$:行尾定位符 /my$/ 匹配所有以my结尾的行;
*:匹配零个或多个前导字符 /test*/ 匹配包含字符串 tes,后跟零个或多个 t 字母的行;
[]:匹配指定字符组内的任一字符 /t[eE]st/ 匹配包含test 或 tEst 的行;
[^]:匹配不在指定字符组内的任一字符 /t[^eE]st/ 匹配string 以t开首,但st之前的那个字符不是e或E的行;
&:保存查找串以便在调换串中引用 s/test/*&*/g 符号&代表查找串。test将被调换为*test*
\<:词⾸首定位符 /\<my/ 匹配包含以my开首的单词典行;
\>:词尾定位符 /my\>/ 匹配包含以my结尾的单词典行;
x\{m\}:持续m个x 如:/9\{5\}/ 匹配包含持续5个9的行;
x\{m,\}:至少m个x 如:/9\{5,\}/ 匹配包含至少持续5个9的行;
下面举一个例子:
推荐阅读
城市数据体系是指按照必定的标准对城市数据进行处理,以实现数据在城市行业部分间互联互通互操作、实现规范化的城市数据运行的数据治理机制。 新型聪明城市数据体系建立了与新型聪明城>>>详细阅读
本文标题:一篇文章学会shell工具篇之sed
地址:http://www.17bianji.com/lsqh/35934.html
1/2 1