使用 sed 生成从一个文件到另一个文件的命中

Produce hits from one file to another using sed

我正在尝试使用 sed 将在一个文件中找到的 "hits" 生成到另一个文件中,但我遗漏了替换文本的某些部分,而且我无法找出它不起作用的原因。

通过使用这个命令:

sed 's/\x1B[[0-9;]*[JKmsu]//g;s/.*(0x\([A-Za-z0-9]\+\)\.0x\([a-z0-9]\+\).*/(<Aug>Oct? Feb:Sep) -/g;s/.*(0x\([a-z0-9]\+\).*/(<Aug>Oct? Feb:Sep) -/g;s/.*}/(<Aug>Oct? Feb:Sep) -/' q1data.txt > 1.txt && cat 1.txt

我试图保留一些文本并删除我不需要的文本。但是在某些行上它错过了我试图 grep 的文本。

将这 2 个文件与上面的命令一起使用我应该能够得到正确的结果,因为我 grep 文本中的红色部分但是由于我不知道的原因它在某些行失败了。文件 1 的结果应与 q1hits.txt 相同。 (请注意,需要在终端中打开文件才能使配色方案和格式生效) q1data, q1hits

sed 's/\x1B[[0-9;]*[JKmsu]//g;s/.*(0x\([A-Za-z0-9]\+\)\.0x\([a-z0-9]\+\).*/(<Aug>Oct? Feb:Sep) - /g;s/.*(0x\([a-z0-9]\+\).*/(<Aug>Oct? Feb:Sep) - /g;s/.*([A-Za-z\.]\+0x\([a-z0-9]\{3\}\).*/(<Aug>Oct? Feb:Sep) - /g;s/.*([A-Za-z\!]\+.0x\([a-z0-9]\{3\}\).*/(<Aug>Oct? Feb:Sep) - /g;s/.*([A-Za-z0-9]\+.0x\([a-z0-9]\{3\}\).*/(<Aug>Oct? Feb:Sep) - /g;s/.*}/(<Aug>Oct? Feb:Sep) - /' q1data.txt > 1.txt

经过大量测试和尝试,该任务已解决。如果您有任何改进建议,请发表评论。