做网站刷东西,网站根据城市做二级目录,网站设计开发收费标准,私域商城平台缘由
以前总觉得sed的语法过于难懂#xff0c;用的时间都不一定会想起来怎么用。
每次都需要先查找帮助#xff0c;然后才能应用#xff0c;但随后又忘 #x1f626;
直到今天通过man sed链接到sed官网上对sed的介绍#xff0c;才明白它竟然是如此的简单明了#xff0…缘由
以前总觉得sed的语法过于难懂用的时间都不一定会想起来怎么用。
每次都需要先查找帮助然后才能应用但随后又忘
直到今天通过man sed链接到sed官网上对sed的介绍才明白它竟然是如此的简单明了和逻辑自然
提纲挈领的sed命令语法结构
# sed commands follow this syntax:sed [options] [addr]X[flags] X is a single-letter sed command. X 是单字符操作命令例如s command [addr] is an optional line address. If [addr] is specified, the command X will be executed only on the matched lines. 行地址可选。如果指定了则sed仅工作做匹配的行上 [addr] can be a single line number, a regular expression, or a range of lines (see sed addresses). 地址信息可以是单一行号、单正则表达式或由它们组成的地址范围 Additional [flags] are used for some sed commands. 附加的标志信息可以对一些sed命令进行控制 更详细的介绍需要看官网介绍
语法概念介绍
sed区别于grep搜索命令工具sed只所以被称之为流编辑器就在于sed除查找外的编辑动作相对于grep还提供了流的增、删、改的功能。
而这方面grep命令就显得无能为力了。
可以想象一般我们对于文档进行编辑遇到的首要问题是关于行的定位。
文档编辑要针对那一行或那一段进行处理所以sed工具语法开始就首先让你提供关于地址的信息其实是非常自然的 在语法中地址虽然可以忽略则当地址信息省略后实则命令是针对于全文档的处理。 后续通过各种具体例子会看到sed的命令语法结构以一贯之
所以sed命令是非常容易理解的
sed命令语法特殊说明 命令部分经常使用单引号而单引号符合bash对单引号引用内容的限定 单引号用于保留字符的字面含义各种特殊字符在单引号里面都会变为普通字符比如星号*、美元符号$、反斜杠\等 当然也可以用双引号以实现变量替换 sed选项特别介绍
-n 默认情况下将打印每一行的执行结果以利于重定向处理结果到结果文件中。开启-n选项后结合p命令字可以有选择地输出行 # 不仅全部输出了控制打印的特殊行也输出了所以显示了两次
seq 5 | sed 1,2p# 仅有第一行和第二行输出
seq 5 | sed -n 1,2p-i 选项开启后将原地编辑输入文件并不将结果输出到标准输出 结束语
正常的话如果你了解了前面sed命令概念介绍以及比较熟悉sed命令看完前面基本上可以做到心领神会了。
后面只需要更专注编辑处理的逻辑概念然后再去拼凑适合的sed命令即可。
对于附录部分可以有选择地阅读以增加对于sed命令的了解。
后期会随着文档的更新不断积累sed一些常用命令。
附录
sed常用命令单字母
s 替换 d 删除 a 追加 i 前插 p 打印 地址分类
数字正则表达式地址范围 特别地在地址与命令字之间加入!则可以实现地址反选 具体例子介绍
删除首行
seq 5 | sed 1d数字行号加删除命令 删除最后一行
seq 5 | sed $d特殊行号符号加删除命令 组合命令
seq 5 | sed 1d; $d截取首部行
seq 5 | sed 2q地址范围反选
seq 5 | sed 1!d利用分号进行命令分割。其它-e方式不够简洁 s命令介绍
本身sed命令地址部分就可以有多种变化特别地可以与正则表达式进行结合所以经常看到比较复杂的sed命令都源于此种地址的的变化以及加上s command命令本身的一些负责语法
s命令语法 s/regexp/replacement/flags 例子
echo hello! apple is red
hello! banana is yellow
hello! watermelon is green input.txtsed /apple/s/hello/world/ input.txt通过正则表达式地址定位方式对于含有apple的行进行搜索hello如果匹配则替换为world 此例也非常典型的说明了sed语法结构是一以贯之的s comand很好地符合了语法结构。 利用sed语法结构可以很清晰地解析任何sed操作
参考
sed官网帮助 sed命令选项 sed address官网章节 sed 如何工作的 sed s command wangdoc shell 单引号介绍