首页 > 编程知识 正文

如何用指令替换方块,替换方块指令

时间:2023-05-03 07:45:30 阅读:208074 作者:844

先看一个使用sed 替换的脚本:

#!/mrdsj/bash#特殊符号解析#将json中特殊符号替换为空格,删除,或者<>符号,或者添加换行符sed "s/</span>&nbsp;/ /g" -i source_json.txtsed "s/&nbsp;/ /g" -i source_json.txtsed "s/</span></span>/ /g" -i source_json.txtsed "s/</span>//g" -i source_json.txtsed "s/&quot;/"/g" -i source_json.txtsed "s/&lt;/</g" -i source_json.txtsed "s/&gt;/>/g" -i source_json.txtsed "s/&amp;/&/g" -i source_json.txt#换行#在特定位置添加换行符sed "s/{"level":[0-9]+,"eventTreeLabel"/n&/g" -i source_json.txtsed "s/"level":[0-9]+,"eventTreeLabel":"[0-9.]+",//g" -i source_json.txtsed "s/"lineNumber":[0-9]+}],/&n/g" -i source_json.txtsed "s/"id":"[0-9]+-[0-9]+",//g" -i source_json.txt#特定字符串的删除sed -i '/name/d' source_json.txt#换指定的警告或者报错类型sed "s/"tag":"[a-z_-]+",//g" -i source_json.txtsed "s/"[a-zA-Z]+Ids":["[0-9-]+","[0-9-]+"],//g" -i source_json.txt

sed指令的替换

转义字符

需要转义的字符  '  "  $  ^    [   ]   等,转义字符 如果需要转义,前面需要添加     

正则表达式:

参数

-i 参数:   -i 参数放在表达式前面,或者表达式后面都行,均能对文本操作

$sed "s/zhangsan/lisi/g" source_json.txt      #没有参数 i  仅仅改变显示$sed "s/zhangsan/lisi/g" -i source_json.txt   #使用参数 i 会实际改变文本$sed "s/&lt;/</g" -i source_json.txt #将匹配到的 &lt; 替换为 <$sed "s/&gt;/>/g" -i source_json.txt #将匹配到的 &gt; 替换为 >

&参数:

这个参数是指的是:前面已经匹配到字符串

#  &  代表的就是 "s/&amp;/"    这里匹配到的  &amp;$sed "s/&amp;/&/g" -i source_json.txt

这条指令的意思就是在 &amp; 这个特定字符前面添加一个   字符

#在匹配到的 {"level":[0-9]+,"eventTreeLabel"  去掉了转义字符   在匹配的字符串前面添加换行$sed "s/{"level":[0-9]+,"eventTreeLabel"/n&/g" -i source_json.txt#在匹配的字符串前面添加换行符$sed "s/"lineNumber":[0-9]+}],/&n/g" -i source_json.txt

正则表达式使用:

#正则表达式 [a-z_]+ 表示从a-z的全部字符,并且包含下划线 _ 这个集合中的一个或多个,#全部替换为空格$sed "s/"tag":"[a-z_-]+",//g" -i source_json.txt# & 是匹配到的字符串的代指,"lineNumber":XXX}],# XXX表示的是多个数字,[0-9]+  是正则表达式,表示在0-9范围内的一个或者多个数字,# 最后替换的 &n 表示在匹配到的字符串后面添加换行$sed "s/"lineNumber":[0-9]+}],/&n/g" -i source_json.txt

特定字符串删除:  (注意这里是单引号,-i参数的位置放在表达式前面,或者后面都可以)

#特定字符串的删除,将特定匹配到的字符串删除sed -i '/name/d' source_json.txt

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。