当前位置: 首页 > news >正文

网站的表单天猫网站平面广告

网站的表单,天猫网站平面广告,宁波本地网站排行,网站建设目标及需求分析环境 Ubuntu 22.04 概述 sed 是“stream editor”的意思#xff0c;用来处理文本#xff0c;比如做文本查找、替换。 处理单行文本 用法1 语法#xff1a; sed s/aaaa/bbbb/ aaaa #xff1a;用正则表达式来匹配字符串#xff0c;并用圆括号括起来需要获取的内容用来处理文本比如做文本查找、替换。 处理单行文本 用法1 语法 sed s/aaaa/bbbb/ aaaa 用正则表达式来匹配字符串并用圆括号括起来需要获取的内容如 xx\(yy\)zzbbbb 获取第几个圆括号里的内容如 \1 比如有一个由3个冒号“ : ”所分隔的字符串比如 a:b:c:d 。想要获取第一个冒号之前的内容。 从正则表达式角度该字符串可以看做 .*:.*:.*:.* 分别用圆括号 () 把两个冒号之间的内容括起来即 (.*):(.*):(.*):(.*) 注意圆括号需要转义所以是 \(.*\):\(.*\):\(.*\):\(.*\) 然后指定获取第几部分比如第一部分就是 \1 注意需要转义。 完整的例子如下 ➜ ~ echo a:b:c:d | sed s/\(.*\):\(.*\):\(.*\):\(.*\)/\1/ a➜ ~ echo a:b:c:d | sed s/\(.*\):\(.*\):\(.*\):\(.*\)/\2/ b➜ ~ echo a:b:c:d | sed s/\(.*\):\(.*\):\(.*\):\(.*\)/\3/ c➜ ~ echo a:b:c:d | sed s/\(.*\):\(.*\):\(.*\):\(.*\)/\4/ d贪婪匹配 如果我们把 a:b:c:d 用 .*:.* 来通配即分成两部分那么sed会怎么来划分呢 答案第一部分是 a:b:c 第二部分是 d 。 ➜ ~ echo a:b:c:d | sed s/\(.*\):\(.*\)/\1/ a:b:c➜ ~ echo a:b:c:d | sed s/\(.*\):\(.*\)/\2/ d这是因为在正则表达式里 .* 是“贪婪式”的会尽可能多的向右匹配。 所以如果我们只想获取最后一个冒号右边的内容并不需要把整个字符串按每个冒号划分为多个部分而只需用 .*:.* 来通配参见上面的例子。 sed貌似无法指定非贪婪式匹配。 如果我们想要获取第一个冒号前面的内容可以像前面所介绍的按照每个冒号分隔为多个部分然后取第一部分。但是这种做法其实不太方便比如如果字符串发生变化多了一个冒号那么正则表达式也得随之变化否则就会取错内容。 一个变通的方法是从左到右把所有非冒号的字符 [^:]* 作为第一部分 ^ 表示“非”后面就是 :.* 即冒号以及随后的所有内容。 ➜ ~ echo a:b:c:d | sed s/\([^:]*\):.*/\1/ a用法2 sed还有一种用法获取正则表达式匹配之外的内容。 语法 sed s/aaaa// aaaa 是一个正则表达式 例如 ➜ ~ echo abcdefg | sed s/cde// abfg正则表达式匹配了 cde 则获取的是前面和后面没有匹配上的内容即 ab 和 fg 。 按此方法对于 a:b:c:d 要获取最后一个冒号右边的内容可以简化如下 ➜ ~ echo a:b:c:d | sed s/\(.*\):// d若正则没有匹配成功则获取整个字符串 注意sed的这两种用法有一个共同的行为特点如果正则表达式没有匹配成功则会获取整个字符串。 比如 ➜ ~ echo abcd | sed s/ab\(c\)d/\1/ c这是正确的匹配。如果正则没有匹配上 ➜ ~ echo abcd | sed s/zzzab\(c\)d/\1/ abcd则获取了整个字符串。 第二种用法也同理 ➜ ~ echo abcd | sed s/abc// d这是正确的匹配。如果正则没有匹配上 ➜ ~ echo abcd | sed s/zzzabc// abcd则获取了整个字符串。 处理多行文本比如文件 查找内容 假设在 ~/.zshrc 里包含了 JAVA_HOME 设置 ➜ ~ grep JAVA_HOME ~/.zshrc export JAVA_HOME/home/ding/Downloads/jdk-17.0.3.1 export PATH${JAVA_HOME}/bin:$PATH现在需要通过sed获取 JAVA_HOME 的设置即 /home/ding/Downloads/jdk-17.0.3.1 。 一种方法是先通过grep命令找到那一行假设只有一行满足条件然后就只需处理单行文本 ➜ ~ cat ~/.zshrc | grep JAVA_HOME | sed s/.*JAVA_HOME\(.*\)/\1/ /home/ding/Downloads/jdk-17.0.3.1修改文件内容 比如要把 JAVA_HOME 设置为 myPath 。 语法 sed -i /aaaa/s/bbbb/cccc/ aaaa 正则表达式用来匹配行s 表示替换bbbb 正则表达式表示旧内容cccc 新内容 其中 -i 表示修改文件否则只会把结果输出。 注可以在最后加一个 g 表示对本行做全局替换否则只替换第一处。本例中只有一处所以无需加 g 。 sed -i /JAVA_HOME/s/.*/myPath/ ~/.zshrc本例中 aaaa 为 JAVA_HOME 即查找符合条件的行bbbb 为 .* 即等号以及后面所有内容cccc 为目标字符串 运行后文件内容被修改为 ...... export JAVA_HOMEmyPath ......注意这里的 bbbb 无需匹配全部内容而只是需被替换的内容而前面介绍的从字符串获取文本时正则表达式必须要匹配全部内容。 如果目标字符串需要包含 bbbb 的内容则可用 来代表。 比如要把 export JAVA_HOMExxxxx 改为 export JAVA_HOMExxxxx/jdk sed -i /JAVA_HOME/s/.*/\/jdk/ ~/.zshrc运行后文件内容被修改为 ...... export JAVA_HOME/home/ding/Downloads/jdk-17.0.3.1/jdk ......获取一部分内容 语法 sed -n /xxxx/,/yyyy/p 表示输出从 xxxx 到 yyyy 的行。其中 yyyy 可以为空表示输出到最末。 比如创建文件 test1.txt 如下 abcdefg hijklmn opq rst uvw xyz则 ➜ ~ sed -n /jk/,/st/p test1.txt hijklmn opq rst➜ ~ sed -n /cde/,/uv/p test1.txt abcdefg hijklmn opq rst uvw➜ ~ sed -n /w/,//p test1.txt uvw xyz在一部分内容里做替换 语法 sed -i /xxxx/,/yyyy/s/aaaa/bbbb/ xxxx 和 yyyy 开始行和结束行也就是指定的部分内容aaaa 旧内容bbbb 新内容 也就是说在 xxxx 和 yyyy 所指定的范围内把 aaaa 替换为 bbbb 。 比如 test1.txt 内容如下 rst abcdefg hijklmn opq rst uvw xyz要把所有的 rst 里的 rs 替换为 123 sed -i /.*/s/rs/123/ test1.txt而如果只把下方的 rst 里的 rs 替换为 123 sed -i /pq/,/u/s/rs/123/ test1.txt其中 pq 和 u 划定了处理内容的范围。 分隔符 如果字符串里本身含有 / 则匹配时需要用 \ 来转义。 比如要想获取字符串 /etc/ansible/hosts 里的 ansible ➜ ~ echo /etc/ansible/hosts | sed s/\/etc\/\(.*\)\/hosts/\1/ ansible这里的正则表达式为 \/etc\/\(.*\)\/hosts 较为复杂。 为了方便我们可以换一个分隔符比如换成 | ➜ ~ echo /etc/ansible/hosts | sed s|/etc/\(.*\)/hosts|\1| ansible这里的正则表达式为 /etc/\(.*\)/hosts 相对简单一些。 考一考 1 求输出结果 echo a:b:c:d | sed s/\(.*\):\(.*\):\(.*\)/\1/答贪婪式匹配 ➜ ~ echo a:b:c:d | sed s/\(.*\):\(.*\):\(.*\)/\1/ a:b2 求输出结果 echo a:b:c | sed s/\(.*\):\(.*\):\(.*\):\(.*\)/\1/答没有匹配成功则获取整个字符串 ➜ ~ echo a:b:c | sed s/\(.*\):\(.*\):\(.*\):\(.*\)/\1/ a:b:c3 已知字符串 {key1:value1,key2:value2,......} 从中获取 value2 的值 key2 是已知字符串且 value2 中不含引号 。 答 ➜ ~ echo {key1:value1,key2:value2,key3:value3} | sed s/.*key2:\([^]*\).*/\1/ value2
http://www.yutouwan.com/news/161041/

相关文章:

  • 网站制作经典案例百度做网站推广的费用
  • 成都网站建设公司创新互联做画册可以参考哪些网站
  • 企业网站建设 论文wordpress 米课
  • 国际网站建站免费的源码
  • 腾讯免费企业邮箱注册申请最新黑帽seo培训
  • 泉州企业自助建站系统麒麟seo外推软件
  • 南通通州区网站制作抖音做我女朋友网站
  • 泸州建设厅官方网站模版建网站
  • 中国建设银行网站个人客户官网为什么wordpress有cookies
  • 赤峰网站建设建站公司上海餐饮品牌策划公司
  • 电子商务网站开发的基本原则?怎样做视频电影网站
  • 电商自建站网站黄页推广软件
  • 网站的购物车怎么做印刷网站模板下载
  • 微网站促销版网站后台漏洞
  • 宣传网站制作方案装修设计网站哪个最好
  • 网站标题具体怎样优化网站每年需要续费吗
  • 网站开发都学什么海关年检要去哪个网站上做
  • 有网站的源代码如何做网站图片生成器免费
  • com域名网站排名优先上海中国国际进口博览会
  • PHP网站建设的基本流程icp网站 是什么意思
  • 网站需要人员互联网营销怎么赚钱
  • icp备案查询站长工具中国建设银行员工网站
  • 哈尔滨智能建站模板wordpress函数调用
  • 网站开发需求书模板河南省建设银行网站年报
  • 资阳优化团队预订太极seo
  • 兰州网站建设和维护工作免费开网店怎么开
  • 17网站一起做网店普上海设计网站与
  • 如何查看网站用什么代码做的网站开发用什么语言写
  • 网站预算怎么做网站背投广告代码
  • 网站建设收费明细表做网站只做前端可以用吗