gpt4 book ai didi

regex - Shell 脚本 Sed - 如何仅在第一次出现字符串时读取文件并写入另一个文件?

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

我试图读取文件 test.txt 的内容并写入另一个文件 Report.html,仅在字符串的第一个匹配项中。像这样的东西:

sed -i '/, past/r test.txt' Report.html

上面的命令读取所有字符串“, past”,并在所有字符串“, past”中包含 test.txt 的内容。但我只想在第一次出现的字符串“, past”中包含它。像这样的命令:

sed -i '0,/, past/r test.txt' Report.html

上面的命令不起作用,正确的语法是什么?

最佳答案

由于 sed r 命令不占用范围,并且 sed 控件不允许“仅第一个”,我认为您需要“计算”感兴趣的行号并将其提供给 sed :

sed -i $(awk '/, past/{print NR;exit}' Report.html)'r test.txt' Report.html

仅当您保证 , past 出现在 Report.html 的某处时才这样做。如果不是,将 $(awk...) 结果存储在一个变量中并首先检查它。否则,sed 将对每一 行进行包含。

关于regex - Shell 脚本 Sed - 如何仅在第一次出现字符串时读取文件并写入另一个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34025547/

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