【发布时间】:2015-08-20 11:45:11
【问题描述】:
当greping 通过其他进程仍在创建的文件时,最后一行通常是不完整的,并且末尾还没有换行符。 grep(或sed之类的替代方法)是否可以忽略这一行?
我不想总是自动忽略最后一行,因为当完整创建完整并附加最后一个换行符时,最后一行才有效。
【问题讨论】:
当greping 通过其他进程仍在创建的文件时,最后一行通常是不完整的,并且末尾还没有换行符。 grep(或sed之类的替代方法)是否可以忽略这一行?
我不想总是自动忽略最后一行,因为当完整创建完整并附加最后一个换行符时,最后一行才有效。
【问题讨论】:
如果文件不以换行符结尾,此 perl 将删除最后一行
perl -pe 's/.*// if eof && !/\n/' file
【讨论】:
您可以使用tail 和wc 来测试文件是否以换行符结尾。如果没有,请删除带有head 的最后一行:
if [[ $(tail -c1 infile | wc -l) != 1 ]]; then
mv infile infile.tmp
head -n-1 infile.tmp > infile
fi
【讨论】: