我一直在尝试找出一个命令来搜索 13 个以上的文件并替换 表单数据的所有匹配和差异,并将其替换为表单数据增强功能。
诀窍是可能有 [whitespace] - 或 _ 作为我想要的分隔符 保存。我正在运行命令行,所以我相信我可以多次运行这个脚本 次并将其指向文件,或者是否有办法捕获目录中的所有文件 (甚至包括目录名称)可能会更容易。
我相信它的调子
sed "s/forms_data/form-data-enhancements/g ; s/forms-data/form-data-enhancements/g ; s/forms data/form data enhancements/g" oldfile > newfile
我不确定……
可能存在差异
forms-data
forms_data
forms data
等等。有人介意分享一些 sed awk 的智慧吗?我能找到的最好的东西是一种称为数组替换的东西,但无法获得有关如何使用它的任何信息。
非常感谢。
最佳答案
这对你有用吗 -
sed -i 's/\<forms[ -_]data\>/form data enhancements/g' /path/to/files*
-i
将进行文件内替换。因此,首先选择一个文件并运行不带 -i
选项的命令。如果一切看起来都正常,那么您可以继续使用 -i
。
更新:
如果您想保留分隔符,那么您可以执行以下操作 -
sed -i 's/\<forms\([ -_]\)data\>/form\1data\1enhancements/' /path/to/files*
关于regex - SED/AWK 多文件替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8979295/