我不能在linux上拖尾文件的最后n行,同样我可以grep
例如grep "2015-09-29 04:" filename.ext
但是我如何将两者结合起来,以便从某个grep显示到文件的末尾。
答案 0 :(得分:4)
您不再使用grep
或tail
。您使用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开头的输出行