uniapp开发app框架在提升开发效率中的独特优势与应用探索
1482
2022-08-30
sed命令
windows下使用sed
windows下可以通过-sed.exe来实现sed.exe
!!! 如果需要匹配特殊字符如引号则需要用反斜杠转义 !!! !!! 另外需要匹配空格时候需要用\s !!! !!! 需要替换的目标内容如果包含空格,则需要给整个模式字符串外侧添加双引号 !!!
例:
外侧包含双引号
s/后面包含"来转义双引号
:后面的\s表示匹配空格等字符
sed "s/"ApplicationIP":\s".*"/"ApplicationIP": "127.0.0.1"/g" appsettings.json
sed的常用选项:
选项 | 含义 |
-e | 它告诉sed将下一个参数解释为一个sed指令,只有当命令行上给出多个sed指令时才需要使用-e选项 |
-f | 后跟保存了sed指令的文件 |
-i | 直接对内容进行修改,不加-i时默认只是预览,不会对文件做实际修改 |
-n | 取消默认输出,sed默认会输出所有文本内容,使用-n参数后只显示处理过的行 |
sed中的编辑命令:
命令 | 含义 |
a-追加 | 向匹配行后面插入内容 |
i-插入 | 向匹配行前插入内容 |
c-更改 | 更改匹配行的内容 |
d-删除 | 删除匹配的内容 |
s-替换 | 替换掉匹配的内容 |
p-打印 | 打印出匹配的内容,通常与-n选项和用 |
= | 用来打印被匹配的行的行号 |
n | 读取下一行,遇到n时会自动跳入下一行 |
r,w | 读和写编辑命令,r用于将内容读入文件,w用于将匹配内容写入到文件 |
常用命令
# 2a 第二行后追加,追加内容为hellosed 2ahello test.txt# 保存修改 -ised -i 2ahello test.txt# /a 批量修改 在所有的hello后面追加一行testsed /hello/atest test.txt# /c 替换所有包含test的行为999sed /test/c999 test.txt# $a 尾行添加123sed $a123 test.txt# 1i 在第一行插入999sed 1i999 test.txt# /world/i 匹配行内容包含world然后在world前一行插入qwersed /world/iqwer test.txt# /world/c 匹配行内容包含world然后整行修改为qwersed /world/cqwer test.txt# 删除匹配内容的行sed /test/d test.txt# 删除指定行sed 2d test.txt# 根据步长删除,从第一行开始每隔两行删除一行sed 1~2d test.txt# 范围删除,从第一行删除到第三行sed 1,3d test.txt# 删除不匹配的行sed 1,3!d test.txt# 删除最后一行sed $d test.txt# 删除不包含test的行sed /test/!d test.txt# 删除匹配的行及下一行sed /test/,+1d test.txt# 删除从匹配的行到最后一行sed /test/,$d test.txt# 删除1-7行中匹配条件的行sed 1,7{/test/d} test.txt# 将test替换为xxx, s为替换模式-需要注意同一行如果有多个匹配的话默认只匹配第一个sed s/test/xxx/ test.txt# 将test替换为xxx, s为替换模式 g为全局替换,即匹配所有而不是只匹配第一个sed s/test/xxx/g test.txt# 在替换模式的基础上添加对行的过滤# 匹配#开头的行,将,开头的内容替换为###sed /#/s/,.*/###/g test.txt# 替换每行中最后两个字符sed s/..$/end/g test.txt# 替换以#开头的行为空行sed s/^#.*// test.txt# 输出指定行的内容, -n为取消默认输出sed -n 4p test.txt#打印文件中的第4行内容sed -n '4p' test.txt #从第二行开始,每隔两行打印一行,波浪号后面的2表示步长sed -n '2~2p' test.txt #打印文件的最后一行sed -n '$p' test.txt #打印1到3行sed -n '1,3p' test.txt #打印从第3行到最后一行的内容sed -n '3,$p' test.txt #逐行读取文件,打印匹配love的行sed -n '/love/p' test.txt #逐行读取文件,打印从匹配china的行到第3行的内容sed -n '/china/,3p' test.txt #打印第一行到匹配china的行sed -n '1,/china/p' test.txt #打印从匹配*的行到最后一行的内容sed -n '/\*/,$p' test.txt #打印匹配*的行及其向后一行,如果有多行匹配too,则匹配的每一行都会向后多打印一行sed -n '/\*/,+1p' test.txt #打印从匹配内容china到匹配内容*的行 sed -n '/china/,/\*/p' 1.txt # 输出最后一行行号sed -n $= test.txt# 输出匹配内容的行号sed -n /#/= test.txt# 查看匹配内容的行号和内容sed -n /test/{=;p} tst.txt
[参考]sed 的基本使用sed 4.2.2 for Windows 单文件版sed入门详解教程
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~