查找文本并将其从一个文件复制到另一个文件

查找文本并将其从一个文件复制到另一个文件

我的目标是从其中包含热词(不知道如何称呼它)的特定行中提取文本。行号可能会有所不同,因为它是每周更新的文件。当检测到热词时,它应该将此行和所有后续文本复制到另一个文件。

这可以通过 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)。

相关内容