linux - Sed 在换行后的字符串 Linux 上插入字符串
问题描述
我一直在尝试将 sed 用于以下内容-我正在文件中搜索以下关键字-
</Remote>
在它之后,在新行上,我试图插入以下 -
<ScanConfig filesToTest="ABCD_*.csv" namePatternLogic="0" scanMethod="0" subdirsScanLevel="" />
我已经尝试过标准 SED -
sed -i '</Remote>/a <ScanConfig filesToTest="ABCD_*.csv" namePatternLogic="0" scanMethod="0" subdirsScanLevel="" />' somefile.txt
或者
sed -i '\#^ *</Remote> *$# a\ <ScanConfig filesToTest="ABCD_*.csv" namePatternLogic="0" scanMethod="0" subdirsScanLevel="" />' somefile.txt
两者都失败并出现以下错误 -
sed: -e expression #1, char 1: unknown command: `<'
sed: -e expression #1, char 1: unknown command: `"'
我怀疑我尝试插入的具有 <, /> 字符的行中的特殊字符会混淆 SED。我尝试在 /\ 中使用转义字符,尽管它并没有解决问题。
有人可以帮我吗?谢谢。
解决方案
这个应该工作
sed -i '/<\/Remote>/a <ScanConfig filesToTest="ABCD_*.csv" namePatternLogic="0" scanMethod="0" subdirsScanLevel="" />' file.txt
在您的第一个脚本中,您忘记在 sed 表达式的开头添加“/”。
如果您将它用作 sed 分隔符,您还必须使用“\/”来匹配“/”。
推荐阅读
- linux - Replace a file temporarily during an sh script run
- docker - What is the difference between "docker container prune" vs "docker rm $(docker container ls -aq)"
- azure-functions - why azure function has table referencing old data?
- javascript - Jquery: selecting grand grand parents by class
- excel - How to select a range in Excel VSTO
- php - How to deal with NULL value in Codeigniter?
- reactjs - 想在 react.js 应用程序中显示 woocommerce webhook 数据
- google-cloud-platform - 检查 GCP 上的虚拟机是否连接到 GCP VPN 网关
- asp.net-web-api - 生产中的 ASP.NET Core 3.1 Web API HTTP 错误 500
- python - 多元线性回归-TypeError:fit()缺少1个必需的位置参数:'y'