windows - 如何将新的文本字符串插入现有文本文件中的特定位置
问题描述
我需要将以下单行插入到许多计算机上的现有文本文件中。因此,我需要在批处理文件中自动执行此操作。
要添加的行:
<.add key="StudentAccountPaymentRunEnvironment" value="PRODUCTION"/>
该字符串的目标位于一个名为: 的文件中,O2-config.txt
在该O2-config.txt
文件中,我需要在下面显示的行之后插入上面显示的行:
<.add key="TuitionPaymentRunEnvironment" value="PRODUCTION"/.>
所以最终的结果将是:
现存的
<.add key="TuitionPaymentRunEnvironment" value="PRODUCTION"/>
新的
<.add key="StudentAccountPaymentRunEnvironment" value="PRODUCTION"/>
在这两行之前和之后有很多行文本。请指教。我搜索并找到了 的解决方案linux
,但没有找到Windows/Command Prompt
. 我想将此解决方案放在.bat
可以使用 Windows 组策略执行的文件中。
解决方案
您可以从此站点获得 sed 的 Windows 端口。
使用它,您可以执行以下命令:
sed -i "s/<.add key=.TuitionPaymentRunEnvironment. value=.PRODUCTION.\/>/&\n<.add key=\"StudentAccountPaymentRunEnvironment\" value=\"PRODUCTION\"\/>/" somefile.txt
之后,需要修复行尾:
sed -i ":a;N;$!ba;s/\n/\r\n/g" somefile.txt
请注意,我假设您的文件中只有一个该文本的实例。
对于仅修改该字符串的第一个匹配项的解决方案,您可以将其放入批处理文件中:
set MATCH=.add key=.TuitionPaymentRunEnvironment. value=.PRODUCTION.
sed "0,/%MATCH%/ {s/%MATCH%\/>/&\n<.add key=\"StudentAccountPaymentRunEnvironment\" value=\"PRODUCTION\"\/>/}" somefile.txt > temp.txt
sed ":a;N;$!ba;s/\n/\r\n/g" temp.txt > somefile.txt
del temp.txt
推荐阅读
- reactjs - 索引 1 处的 todos 数组总是被更改,并且数组不会进一步移动 - React-Typescript
- python-3.x - Python mqtt 停止发布
- c# - 跨线程操作无效:控件“地址栏”是从创建它的线程以外的线程访问的
- javascript - 将 onclick 按钮添加到 textarea 中的 onkeyup 函数
- javascript - 反应 useFetch 钩子 + onclick / 事件
- javascript - 当我通过 jQuery 中的克隆方法创建一个新按钮时,如何触发删除按钮?
- static-methods - Unittest mock.patch.object(autospec = True)因静态方法而损坏?
- reactjs - html2canvas 不拍摄视频标签屏幕截图
- excel - 使用单元格引用导出 XLS 文件
- reactjs - 反应 /redux 应用程序 - 添加到购物车按钮不起作用 - 单击 TypeError 时:显示