跳至主要内容

linux 下sed命令 及 正则表达式相关

 

正则表达式复杂!


sed -i 's/^#\(.*helloworld\)/\1/' feeds.conf.default

依次解析:

-i 直接修改读取的文件内容,而不是输出到终端

/ :  ~ 开始匹配搜索

^##号开头的行

\(.*helloworld\)格式为(XXXXhelloworld)的行, XXXX的长度不限

/:  ~  开始处理

\1: ~~~猜测是前面匹配的串

/:  ~ 结束了

实测结果:

$ cat tt11

,(fdsa helloworld) 001

#$fdsa helloworld) 002

#(fdsa felloworld) 003

#(fdsa helloworld* 004

#(fdsa helloworld) 005

#(fdsa helloworld) end!

$ sed -i 's/^#\(.*helloworld\)/\1/' tt11

预期: 001行不变, 002-004行不变, 005#号被删除

$ cat tt11

,(fdsa helloworld) 001

$fdsa helloworld) 002

#(fdsa felloworld) 003

(fdsa helloworld* 004

(fdsa helloworld) 005

(fdsa helloworld) end!

实际

001不变(未匹配#号开头)

002 #号被删除(未匹配左括号)

003 不变(未匹配helloworld)

004 #号被删除(未匹配右括号)

005 #号被删除(完全匹配)

006 #号被删除(完全匹配)

解析:

左右括号不是匹配条件可能只是标注条件?

\1: 应该是修改后原串?

注: 这个命令原意应该是去掉符合条件的行前面的#号注释符。



参考:


在线正则表达式测试链接

linux sed命令详解链接

linuxsed正则表达式匹配批量替换文件中的内容链接

正则表达式 语法链接

评论

此博客中的热门博文

(migrated)联通(数码视讯)Q7电视盒子刷机成功, 但这Q7盒子是真的垃圾!

 一、破解方式       联通(数码视讯)Q7(以下简称Q7)有很多种破解方式:          a. 不拆机破解: 主要通过漏洞是装上可以装App的市场或其他工具          b. TTL破解: 连接TTL线,通过进入底层系统打开adb调试, 再通过其它工具安装App, 如:                        “北京联通盒子-数码视讯Q7-破解"             或者在底层的Linux系统里直接安装App.         c. 使用USB Burn方式刷机: 直接刷成别的系统,如:                   " 【2020年11月】北京联通数码视讯Q7破解教程"                          最后用的是这种方式进行刷机 。          相关的包下载地址:          1) 刷机固件:             链接: https://pan.baidu.com/s/18ukQVyQiScAeQPCReoBr0Q                    提取码:yp6t             里面有个压缩包: 20191218-Q7-4.4.2-root-twrp-...

P3TERX/OpenWrt-Newifi_D2的Actions编译配置文件简单分析

  链接 :  https://github.com/P3TERX/OpenWrt-Newifi_D2 Code 目录结构 : 根目录 : .github/ 目录 : .github /workflows / 目录 : 可能需要修改的文件 : .github /workflows /build-openwrt.yml:    文件及参数设置。 文件中可能修改的部分 : name: Build OpenWrt env:   REPO_URL: https://github.com/coolsnowwolf/lede   #  库地址    #  lean 的 https://github.com/coolsnowwolf/lede.git    # or     #  Lienol 的 https://github.com/Lienol/openwrt )   REPO_BRANCH: master           #  不同分支      #  以 Lienol OpenWrt 源码为例 ,  分支 dev-master  激进; dev-19.07 OpenWrt 官方平稳版; dev-lean-lede    lean 的源码   FEEDS_CONF: feeds.conf.default   CONFIG_FILE: open.config         #  编译配置文件  open.config   DIY_P1_SH: diy-part1.sh   ...

(migrated)联通(数码视讯)Q7盒子再刷Openwrt

说明:     联通(数码视讯)Q7盒子(以下简称Q7)做为一个电视盒子应该是没有什么可取之处, 但还可以做点别的, 比如, 做Openwrt盒子。     恩山论坛 的 flippy大侠 推出了 "55+、55+O S905x3、S922x、贝壳云、我家云、微加云等OP固件" , 是基于 amlogic(晶晨) 的S9xx系列arm SOC的openwrt固件, 现在支持包括基于 amlogic(晶晨)  S922x、S912、S905x、s905x2、S905x3、S905d等多款SOC的盒子。    但是,  flippy大侠 的固件说明中, 并未明确指出对S905L的支持, 而Q7用的SOC是S905L。    查到 维基Amlogic 说明中是这么说的:            Amlogic S905L: 与S905X相似,不同之处在于它支持HDMI 2.0b,但缺少VP9解码,摄像头接口和TS输入。     按这种说法, S905L可能是和S905X差不多, 支持S905X应该就能支持S905L, 那么Q7就应该能用。     推论如此, 然后在网上找到了一个实例,  恩山论坛 的 Len_大侠 在 "联通北京数码Q7,S905L电视盒刷成了openwrt系统路由器" 贴子里, 明确说明他已经成功完成了将Q7刷上了Openwrt, 虽然没有详细说明, 但从帖子里可以看出来大概是怎么做的, 那么, 就跟随 Len_大侠 , 让Q7废物利用吧。     为了简单化(偷懒😁), 选用的是使用 外接存储( U盘或TF卡) 启动 Q7的方式。     Q7自带TF卡槽 , 这倒是为数不多的优点之一。 另:       在 Github 上找了下 flippy大侠 的源码,  感觉应该是这个:  lllrrr/mknop       tuanqing/mknop 这个肯定是分支。 另外,  flippy大侠 还做了 Doc...