sed - 通过搜索最后几行的模式来查找文件名

标签 sed awk grep

我必须在大量包含特定模式的大型 ASCII 文件中找到所有文件。目前我正在这样做

grep -l <pattern> <files>

而且速度非常慢。 但我知道该模式会出现在最后 10 行(如果存在)。是否有一种优雅的可能性只搜索最后一行以加快搜索速度,例如用awk?

最佳答案

您可以在处理时简单地打印文件名

for f in $files; do
  echo "---- File \"$f\" ------"
  tail -n 10 "$f" | grep -l "$pattern"
  # you can also save the stdout to $f...
done

关于sed - 通过搜索最后几行的模式来查找文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17146901/

相关文章:

bash - 如何将此 bash 命令行折叠成 awk 语句?

linux - 如何删除sed中给定变量的行?

bash - 需要使用 bash 和 awk 计算数组的标准差吗?

shell - 如何设置终端的选项卡大小(不带 "tabs"或 "expand")

linux - 是否可以显示搜索关键字的 +/- 3 个单词的 grep 输出?

linux - 在 zip 文件中搜索字符串的最快 grep

linux - 使用 bash、sed 或 awk 拆分 CSV 文件并排除输出中的列

linux - 如果行匹配,如何在目标文件中标记行

linux - 拆分包含管道字符的字符串

awk 插入列并在单行上打印