我有一个关于在UNIX中使用head
和tail
命令从大型事务日志中截断特定事务的问题。
head -X <<<filename>>> | tail -Y > <<<Truncatedfile>>>
其中X
是我想要从文件开头的行数,Y
是我想从文件底部开始的行数。
如何修改此代码以使截断的文件只包含唯一事务ID的事务?例如:-
该文件包含序列中n
个事务ID数的事务日志。那么,如果我只需要为1个单独的事务ID提取的日志如何修改上面的代码呢?
答案 0 :(得分:2)
您不会修改上述代码,而是
grep -w transactionid filename
假设transactionid显示为单独的单词(-w)
修改您可以添加一些上下文行(匹配后包含10行:)
grep -w -A 10 transactionid filename
或者,
grep -vw transactionid filename
简单隐藏包含交易ID的所有行 NOT 。这接近于等同于sed -e '/transactionid/!d'
。
打印第5-12行
sed -n '5,12p' filename