0
我有一个包含jsp文件的文件夹。我用找到和sed在一些文件中改变部分文本。该文件夹在版本控制之下。命令成功改变了指定模式的所有出现但执行Linux sed命令和版本控制抱怨
问题是,当我与远程仓库,我可以看到列为修改实际上没有在该文件中已经改变了这么多文件同步的文件夹。我猜想我认为这个空白地方有问题。任何人都可以点亮这件事。
我试图取代../../images/spacer
在所有JSP文件${pageContext.request.contextPath}/static/images/spacer
当前文件夹 我使用的指挥下是如下
find . -name '*.jsp' -exec sed -i 's/..\/..\/images\/spacer/${pageContext.request.contextPath}\/static\/images\/spacer/g' {} \;
使用'-i'选项强制重写所有文件。你需要添加一个过滤器来只检索需要编辑的文件,所以'find ... | grep -l'srchTarg'| xargs sed -i'....'{}'可能会有所帮助。只尝试测试数据!祝你好运。 – shellter
谢谢@shellter,我设法缩小了结果,然后appllied sed命令,但我仍然可以看到问题。现在,它仅限于包含搜索模式的文件。当我比较这些文件时,我可以看到某些行被突出显示为未经任何实际修改而被修改。因此,总结问题仍然存在,但仅限于包含搜索模式 – Vahid
的文件,因此您需要使用其他过滤器来移除包含固定搜索模式的文件。也许'找到... | grep -l'srchTarg'| xargs grep -vl'fixedPattern'{} | xargs sed -i'...'{}'? (处理测试文件!)。祝你好运。 – shellter