当grep
通过其他进程仍在创建的文件时,最后一行通常是不完整的,并且最后还没有换行符。是否可以使用grep
(或某些替代方法,如sed
)来忽略此行?
我不想只是自动忽略最后一行,因为当完全创建完整并且附加了最终换行符后,最后一行将有效。
答案 0 :(得分:3)
如果文件没有以换行符结尾
,则此perl将删除最后一行perl -pe 's/.*// if eof && !/\n/' file
答案 1 :(得分:0)
您可以使用tail
和wc
来测试文件是否以换行符结尾。如果不是,请删除head
的最后一行:
if [[ $(tail -c1 infile | wc -l) != 1 ]]; then
mv infile infile.tmp
head -n-1 infile.tmp > infile
fi