bash:检查gzip文件是否以新行字符结尾,如果缺少则添加

bash:检查gzip文件是否以新行字符结尾,如果缺少则添加,bash,Bash,我在其他帖子中看到了这个问题的变体,但无法找到gzip文件的答案 我有几个非常大的gzip文件,其中一些文件不会以新行字符结尾。我想使用bash检查每个文件是否以新行字符结尾。如果文件末尾缺少新行字符,我想添加它。我从这篇文章()中看到,我可以使用以下方法为文件添加新行: [[ $(tail -c1 file) && -f file ]]&&echo ''>>file 但这不适用于gzip文件。对使用gzip文件有什么建议吗?谢谢 zcat可用于输出

我在其他帖子中看到了这个问题的变体,但无法找到gzip文件的答案

我有几个非常大的gzip文件,其中一些文件不会以新行字符结尾。我想使用bash检查每个文件是否以新行字符结尾。如果文件末尾缺少新行字符,我想添加它。我从这篇文章()中看到,我可以使用以下方法为文件添加新行:

[[ $(tail -c1 file) && -f file ]]&&echo ''>>file

但这不适用于gzip文件。对使用gzip文件有什么建议吗?谢谢

zcat可用于输出压缩文件。请使用
帮助echo检查您的echo
-我最喜欢的选项是
-ne
,用于解释新行:
echo-ne'\n'
-以及打开的日志文件,我将其完全清空:
echo-n>日志文件
@koyaanisqatsi谢谢!我已经将代码修改为:
[$(tail-c1文件)&&&&f文件]&&echo-ne'\n'>>文件
,但它没有将新行添加到gzip文件中(虽然适用于未压缩文件),我一定是缺少了什么?您必须检查gzip是否已压缩,然后
和&
执行其他操作
|
执行其他操作-例如:
zchk(){((zcat${1}&>/dev/null)和(printf”%s\n“${1}是gz”)| |(cat${1}))
-这是一个函数定义,在bash或脚本中定义后执行它,使用:
zchk filename.z
或/和
zchk filename