我正在寻找一个搜索和替换工具,它可以获取规则列表和文件(或目录)并在文件上运行这些规则。我有很多文件需要更改,我希望能够一次性运行所有规则。
我希望我可以将规则放在单独的文件中,并反复使用同一组规则。
有这样的工具吗?
答案1
我发现我正在寻找sed。使用 -f 选项应该可以满足我的大部分要求。
www.sedtutorial.com 是开始使用 sed 命令的好地方。
答案2
这个工具的功能远不止你想的那样,但可以轻松处理多条规则:
答案3
无论你想添加一些简单的规则,保存它们以供日后使用,还是添加正则表达式多行替换BK 替换适合你 ;-)。但说真的。如果你只是想快速运行一些简单、具体的修改,那么这可能不是最好的工具。但如果你想保存规则,而不是每次都想知道如何进行转换,那么这个就行了。我也喜欢它,因为你可以(但不必)保存一个文件夹和一个你将为其运行替换的文件掩码。您还可以在替换组之间移动文件夹集并按特定顺序运行替换。
答案4
检查 TextCrawler。是唯一一个同时具有批处理命令 - 批处理编辑器(在这里您可以输入任意数量的搜索和替换规则)
https://www.digitalvolcano.co.uk/textcrawler.html
此外,对于正则表达式以及简单的查找和替换,您可以使用 notepad++ 插件 (Python),其中包含多个搜索和替换规则。您可以在此处找到代码:
# -*- coding: utf-8 -*-
from __future__ import print_function
from Npp import *
import os
import sys
#-------------------------------------------------------------------------------
class T22601(object):
def __init__(self):
top_level_dir = notepad.prompt('Paste path to top-level folder to process:', '', '')
number_files = 0
for root, dirs, files in os.walk(top_level_dir):
nested_levels = root.split('/')
if len(nested_levels) > 0:
del dirs[:]
for filename in files:
if filename[-5:] == '.html':
notepad.open(root + "\\" + filename)
console.write(root + "\\" + filename + "\r\n")
notepad.runMenuCommand("Encodage", "Convertir en UTF-8")
regex_find_repl_dict_list = [
{ 'find' : '<title>(.*?)</title>', 'replace' : r'\3\2\1' },
{ 'find' : '<head>\s+', 'replace' : r'\n baba ' },
]
editor.beginUndoAction()
for d in regex_find_repl_dict_list: editor.rereplace(d['find'], d['replace'])
editor.endUndoAction()
notepad.save()
notepad.close()
number_files += 1
result = notepad.prompt('Number of modified files: ', '', number_files)
print("Number of modified files: ", number_files)
#-------------------------------------------------------------------------------
if __name__ == '__main__': T22601()