我已经阅读了多篇有关如何排除grep匹配行的文章,但没有一个能最终解决,大多数都找到了其他排序数据的方法,但这不能解决不同数据的相似问题。
我有一个带有递归输出的文件,一个命令一遍又一遍地重复。我想删掉0个结果,因为它是唯一的常数,结果命中数是未知数。
无论这些行的内容是什么,我可以搜索的唯一字符串都必须在其上面加上4行,而且我还没有找到任何信息足以满足要求。
这是一个概念性问题,必须有一个简单的解决方案,但是如果需要一个示例:
Path/Path/Path> search
[results]
[results]
2 entries found
Path/Path/Path> search
[result]
1 entry found
Path/Path/Path> search
0 entry found
答案 0 :(得分:0)
尝试一下:
# Assumption: The data is in logile.txt
i=0
tac logfile.txt |\
while read -r line; do
if [[ "${line:0:7}" == "0 entry" ]]; then
i=0
continue
else
((i++))
[[ $i -le 4 ]] && continue
fi
echo "$line"
done | tac
输出:
Path/Path/Path> search
[results]
[results]
2 entries found