正则表达式 – 当组合grep和sed时如何使用变量名?
发布时间:2020-12-14 05:47:24 所属栏目:百科 来源:网络整理
导读:我想搜索一个字符串,并在递归的目录中的所有文件中用不同的字符串替换它.我能够像这样在一个文件上使用sed并且它可以工作: sed -i "s|${searchStr}|${replaceStr}|g" "${rootDir}"file.cs 但是当我使用它与grep时,我没有看到文件中的更改或获取任何错误消息
我想搜索一个字符串,并在递归的目录中的所有文件中用不同的字符串替换它.我能够像这样在一个文件上使用sed并且它可以工作:
sed -i "s|${searchStr}|${replaceStr}|g" "${rootDir}"file.cs 但是当我使用它与grep时,我没有看到文件中的更改或获取任何错误消息. 这个作品: grep -rnlis --include=*.{html,css,js,aspx} './' -e "/images/" | xargs -i@ sed -i "s|/images/|https://example.com/Images/|I" @ 试过这些,但没有奏效: searchStr='/images/' replaceStr='https://example.com/Images/' ... -e "$searchStr" | xargs -i@ sed -i "s|$searchStr|$replaceStr|I" @ 和 ... -e "${searchStr}" | xargs -i@ sed -i "s|${searchStr}|${replaceStr}|I" @ 与表达式中的变量名一起使用时出现错误消息: :没有这样的文件或directoryult.js :没有这样的文件或directoryders.aspx :没有这样的文件或directoryork.css :没有这样的文件或directoryal-power.js 如何使用变量名称而不是硬编码? 环境:cygwin(所以Windows GNU sed / grep) 解决方法
感谢@NeronLeVelu,这是解决方案:
字符串searchstr = ‘/图像/’ 它完美地工作并递归地替换rootDir中的searchStr. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |