我的目标是从其中包含热词(不知道如何称呼它)的特定行中提取文本。行号可能会有所不同,因为它是每周更新的文件。当检测到热词时,它应该将此行和所有后续文本复制到另一个文件。
这可以通过 sed、awk 或其他东西来完成吗?
答案1
grep -A 10
可用于打印包含匹配单词的行及其后的十行(您可以将 10 替换为您想要的任何数字),但由于您没有指示文件中有多少行,因此您可以使用以下命令:
sed -n '/word/,$p' file >> file2
这将打印包含该单词的行及其后的所有行,然后将它们附加到另一个文件中。这样,如果文件包含大量行(例如 1,000 行或更多),则无需考虑总行数。
答案2
grep -A $(< $A wc -l) hotword $A >> $B
答案3
另一种选择是使用 awk:
awk "/word/, 0" infile >outfile
这会复制从第一行包含“word”开始的行范围,并且从不结束(因此是0
)。