文档章节

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

jickding
 jickding
发布于 2016/11/25 11:02
字数 292
阅读 27
收藏 0
点赞 0
评论 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
成都
程序员
mac自带的sed和linux表现不一致, 需要安装gnu-sed

1.本来想把逗号替换成换行,结果不行。 $echo "a,b,c,d" |sed 's/,/n/g' anbncnd 网上查了一下,原来是mac的sed对n的处理和linux不一样, 详见:http://superuser.com/questions/307165/newl...

孟飞阳 ⋅ 06/06 ⋅ 0

9.4/9.5 sed工具(上、下)

9.4-9.5 sed命令 sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern s...

Champin ⋅ 2017/11/21 ⋅ 0

sed工具与正则表达式的使用(shell第四天)

sed工具 【流式编辑器】 —— 非交互,基于模式匹配过滤及修改文本 —— 逐行处理,并将结果输出到屏幕 ——可实现对文本的输出,删除,替换,复制,剪切,导入,导出等各种操作 命令格式: ...

Morning晨丿 ⋅ 04/30 ⋅ 0

数据科学家必备!12个基本命令行工具帮你摆脱鼠标

原文链接:点击打开链接 摘要: 这篇文章概述了十二个可以用于数据科学项目的类Unix操作系统命令行工具。 这一系列工具不包括任何基本的文件管理命令(pwd、ls、mkdir、rm……)和远程桌面管...

qq_40954115 ⋅ 04/19 ⋅ 0

查找目录下的所有文件中是否含有某个字符串 

查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xargs grep -ri "IBM" -l 1.正则表达式 (1...

wangxuwei ⋅ 05/07 ⋅ 0

Linux 中几个高效过滤命令

过滤器是一个程序,它从标准输入读取数据,在数据上执行操作,然后把结果写到标准输出。 因此,它可以用来以强大的方式处理信息,例如重新结构化输出以生成有用的报告,修改文件里面的文本,...

问题终结者 ⋅ 05/15 ⋅ 0

shell中怎么判断输入的是否是数字

在shell中我们经常要面临一个问题就是,怎么判断我交互式的前端,使用者输入的是否是数字呢?这里小编我也就会两种方法,所以今天就在这说一说 第一种:sed格式 首先:我们先(在命令行直接输...

shuai12138 ⋅ 2017/02/24 ⋅ 0

Linux下使用xargs将多行文本转换成一行并用tr实现逗号隔开

准备: cat test.txt134 示例: cat test.txt | xargs1 3 4 可以看出得到的字符串为空格隔开的。 再把上面的字符串用逗号隔开,可以使用tr命令进行空格的替换 cat test.txt | xargs | tr ' ...

easonjim ⋅ 01/20 ⋅ 0

Shell脚本学习指南摘录---1

1、数字与数值表达式 awk并没有提供字符串转数字的函数,不过awk的做法很简单:只要加个零到字符串里边,例如s = “123”,接着n = 0 + s,便将数字123赋给n了。 2、打印前几行的方式 head -...

断臂人 ⋅ 06/13 ⋅ 0

centos7.2用rpm包安装zabbix-3.2.4

centos7.2 安装 zabbix3.2.x 查看系统版本 cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) 查看内核版本 uname -r 3.10.0-327.el7.x86_64 关闭selinux sed -i "s/SELINUX=e......

Allen_Jol ⋅ 04/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Docker Swarm的前世今生

概述 在我的《Docker Swarm集群初探》一文中,我们实际体验了Docker Swarm容器集群技术的魅力,与《Kubernetes实践录》一文中提到的Kubernetes集群技术相比,Docker Swarm没有Kubernetes显得...

CodeSheep ⋅ 今天 ⋅ 0

骰子游戏代码开源地址

因为阿里云现在服务器已经停用了,所以上面的配置已经失效。 服务端开源地址:https://gitee.com/goalya/chat4.git 客户端开源地址:https://gitee.com/goalya/client4.git 具体运行界面请参考...

算法之名 ⋅ 今天 ⋅ 0

设计模式--装饰者模式

装饰者模式 定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 通用类图 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比...

gaob2001 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部