shell脚本,正则表达式,如何批量替换多个文件夹中指定字符中的指定字符 50
如何批量替换多个文件夹中指定字符中的指定字符,例如“abcdefg%sas;”这种以a开头的,以;结尾的字符串中的%s。已用grep找到“abcdefg%sas;”如何接...
如何批量替换多个文件夹中指定字符中的指定字符,例如“abcdefg%sas;”这种以a开头的,以;结尾的字符串中的%s。
已用grep找到“abcdefg%sas;”如何接下来操作 展开
已用grep找到“abcdefg%sas;”如何接下来操作 展开
1个回答
展开全部
用Replace Pioneer处理很轻松,找到")"和"("之间的内容,把"、"替换成"|"就可以了。 需要说明的是,你的括号是中文括号"()"而不是英文括号"()",所以不用转义。 以下是详细步骤: 1. ctrl-o打开待处理txt文件 2. ctrl-h打开replace窗口 * 在Search for pattern下面输入: "(^|)).*?((|$)"(不包含左右的双引号) * 在Replace with pattern下面输入: "replace($match,'、','|')"(不包含左右的双引号) 3. 点击Replace,完成。 **************** 另外,这里再给你一个纯正则表达式的版本: 把"、(?=[^)]*((|$))"替换成"|"就可以了。 你也可以在Replace Pioneer的search for pattern输入"、(?=[^)]*((|$))"(无双引号),然后在replace with pattern输入|就可以了。
追问
可是文件有上百个,不可能一一打开替换吧?而且用shell脚本可以简单做到。
回答下问题中shell脚本问题,怎么批量替换多个文件中指定字符串中指定字符。我已经遍历整个文件夹,用grep找到指定字符串了,并准备用sed替换了里面的指定字符,但正则表达式错误,而且原文件中没修改,可以帮忙解答一下吗?或是有什么其他思路么?
谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询