文档章节

Linux shell sed 从原始文本中提取“” 中的字符串

jickding
 jickding
发布于 2016/11/25 11:02
字数 292
阅读 70
收藏 0
从原始文本中提取“” 中的字符串,并在其前后添加字符串,组成新的字符串

原始文本

dingldeiMac:goahead_release dingl$ cat x
var showWan = '<% getCfgZero(1, "showWanMenu"); %>';
var showCell = '<% getCfgZero(1, "showCellMenu"); %>';
var showApplication = '<% getCfgZero(1, "showApplicationMenu"); %>';
var showgps = '<% getCfgZero(1, "showgpsMenu"); %>';
var showdtu = '<% getCfgZero(1, "showdtuMenu"); %>';
var showgpio = '<% getCfgZero(1, "showgpioMenu"); %>';
var showswitchgw = '<% getCfgZero(1, "showswitchgwMenu"); %>';
var showvoice = '<% getCfgZero(1, "showvoiceMenu"); %>';
var showmsg = '<% getCfgZero(1, "showmsgMenu"); %>';
var showWireless = '<% getCfgZero(1, "showWirelessMenu"); %>';
var showVPN = '<% getCfgZero(1, "showVPNMenu"); %>';
执行下面的shell命令可以得到理想的结果
 cat x | sed -e 's/\(.*\)\"\(.*\)\"\(.*\)/\2/' -e 's/^/nvram_set 2860 /g' -e 's/$/ 1/g'
得到如下结果
nvram_set 2860 showWanMenu 1
nvram_set 2860 showCellMenu 1
nvram_set 2860 showApplicationMenu 1
nvram_set 2860 showgpsMenu 1
nvram_set 2860 showdtuMenu 1
nvram_set 2860 showgpioMenu 1
nvram_set 2860 showswitchgwMenu 1
nvram_set 2860 showvoiceMenu 1
nvram_set 2860 showmsgMenu 1
nvram_set 2860 showWirelessMenu 1
nvram_set 2860 showVPNMenu 1
命令解析:
正则表达式 \(.*\)\"\(.*\)\"\(.*\) 可以匹配到 "" 前后的所有字符并分组
\2 表示使用从第二个分组

s/^/nvram_set 2860 /g 表示在字符串的行首添加字符串“nvram_set 2860 ”
's/$/ 1/g' 表示在字符串的末尾添加" 1"

© 著作权归作者所有

共有 人打赏支持
jickding
粉丝 0
博文 2
码字总数 1017
作品 0
成都
程序员
linux shell 用sed命令在文本的行尾或行首添加字符

用sed命令在行首或行尾添加字符的命令有以下几种: 假设处理的文本为test.file 在每行的头添加字符,比如"HEAD",命令如下: sed 's/^/HEAD/g' test.file 在每行的行尾添加字符,比如“TAIL”...

大圈
2015/07/23
0
0
linux sed 命令单行任务快速参考

文本间隔: ——– # 在每一行后面增加一空行 sed G # 将原来的所有空行删除并在每一行后面增加一空行。 # 这样在输出的文本中每一行后面将有且只有一空行。 sed ‘/^$/d;G’ # 在每一行后面...

程序师
07/30
0
0
【Linux】基础每日一命之sed命令

sed命令是利用script来处理文件 sed可依照script的指令,来处理、编辑文本文件。 sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等 语法: sed [-hnV][-e...

白羊IT
06/27
0
0
linux sed 批量替换字符串

比如,要将目录/modules下面所有文件中的zhangsan都修改成lisi,这样做: sed -i "s/zhangsan/lisi/g" 解释一下: -i 表示inplace edit,就地修改文件 -r 表示搜索子目录 -l 表示输出匹配的文...

走下哦
07/01
0
0
shell入门基础&常见命令及用法

shell shell是一个命令解释器,实际是一个程序,/bin/bash,linux中所有的命令都由它来解释,有自己的语法 shell脚本 以.sh结尾 shell语法+linux命令 注释: 单行注释 : # 多行注释 : :<...

鱼大大
08/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

centos7安装redis及开机启动

配置编译环境: sudo yum install gcc-c++ 下载源码: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 解压源码: tar -zxvf redis-3.2.8.tar.gz 进入到解压目录: cd redis-3......

hotsmile
37分钟前
0
0
Confluence 6 数据库和临时目录

数据库 所有的其他数据库,包括有页面,内容都存储在数据库中。如果你安装的 Confluence 是用于评估或者你选择使用的是 Embedded H2 Database 数据库。数据库有关的文件将会存储在 database...

honeymose
51分钟前
1
0
day62-20180820-流利阅读笔记

1.今日导读 2.带着问题听讲解 3.新闻正文(中英文对照) 4.重点词汇 5.拓展内容

aibinxiao
今天
0
0
分布式锁实现及对比

一、问题介绍 日常工作中很多场景下需要用到分布式锁,例如:任务运行(多个节点同一时刻同一个任务只能在一个节点上运行(分片任务除外)),交易接受(前端交易请求发送时,可能由于两次提...

yangjianzhou
今天
6
0
【AI实战】快速掌握TensorFlow(二):计算图、会话

在前面的文章中,我们已经完成了AI基础环境的搭建(见文章:Ubuntu + Anaconda + TensorFlow + GPU + PyCharm搭建AI基础环境),以及初步了解了TensorFlow的特点和基本操作(见文章:快速掌握...

雪饼
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部