如何在linux中结合tail和grep

时间:2015-09-29 04:30:41

标签: linux shell grep tail

我不能在linux上拖尾文件的最后n行,同样我可以grep 例如grep "2015-09-29 04:" filename.ext 但是我如何将两者结合起来,以便从某个grep显示到文件的末尾。

2 个答案:

答案 0 :(得分:4)

您不再使用greptail。您使用sed

sed -n '/^2015-09-29 04:/,$p'

默认不打印(-n)。从第一行2015-09-29 04:开始到文件末尾($),打印行。

如果您绝对必须使用grep并且您拥有GNU grep,那么您可以考虑:

grep -A 999999999 -e '^2015-09-29 04:'

在匹配模式的第一行之后打印第一个十亿行(如果在该尾随材料期间出现模式,则计数器将重置)。当然,如果您的文件长度为20亿行,并且模式发生在一百万行之后(并且再也没有),那么您将丢失大量数据。

答案 1 :(得分:0)

#!/bin/bash
line_no=`grep -n -m1 "$1" $2 | cut -d: -f1`
echo "Starting at line: " $line_no
tail -n +$line_no $2

用法:脚本'文字寻找'文件名
例如

./grep.sh 'Sep 29 13:14' /var/log/syslog
  • -n发行行号
  • -m1 1次点击后停止阅读
  • cut出了行号
  • tail -n +K以Kth开头的输出行