gpt4 book ai didi

linux - 在 unix/linux 中删除文件中最后一次出现的字符串

转载 作者:太空宇宙 更新时间:2023-11-04 11:19:43 24 4
gpt4 key购买 nike

需要将文件中最后一个 VirtualHost 字符串移动到 eof。我尝试使用 sed

#!/bin/bash
tac infile.txt | sed "s/<\/VirtualHost>//; ta ; b ; :a ; N ; ba" | tac
echo "</VirtualHost>" >>infile.txt

当前文本:

</VirtualHost>
#Added for Patch
<LocationMatch ^/bea_wls_internal/>
RewriteEngine ON
</VirtualHost>
RewriteOptions inherit
</LocationMatch>

所需文本:

</VirtualHost>
#Added for Patch
<LocationMatch ^/bea_wls_internal/>
RewriteEngine ON
RewriteOptions inherit
</LocationMatch>
</VirtualHost>

最佳答案

ed 编辑器在这种情况下会派上用场。它在调用时将自己定位在文件的最后一行,因此您需要做的就是向后搜索您想要的行并将其删除。您也可以同样轻松地添加回行(首先这样做是有意义的):

echo 'a
</VirutalHost>
.
?</VirtualHost>?
d
wq' | ed -s infile.txt

-s 选项会抑制 ed 的诊断输出。

a 追加到仅包含 的行。

?向后搜索

d 删除一行

wq写入文件并退出

关于linux - 在 unix/linux 中删除文件中最后一次出现的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19006421/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com