忽略 linux 管道中的错误
Ignore errors in linux pipelines
我在 filenames.txt 文件中有一长串文件名。这些文件是 lzo 压缩的,我使用 lzop 解压缩它们以便在管道中进一步处理。
cat filenames.txt | (xargs lzop -dc || true) | python lineprocessor.py > output.txt
所以文件名是逐行输入到 lzop -dc 的。然后将它们解压缩并通过管道传输到我编写的 lineprocessor.py 脚本中。最后lineprocessor.py的输出写在output.txt.
问题是 filenames.txt 中的某些文件未正确压缩,lzop 崩溃,整个管道也是如此。我添加了 ||确实可以防止这种情况发生,但没有帮助。 lzop 没有忽略错误的选项。我不关心压缩文件有误
有什么方法可以轻松解决这个问题?
无论 lzop -dc 命令发生什么,我都希望管道继续。
while read filename; do
lzop -fdc "$filename" | python lineprocessor.py
done < filenames.txt >> output.txt
我在 filenames.txt 文件中有一长串文件名。这些文件是 lzo 压缩的,我使用 lzop 解压缩它们以便在管道中进一步处理。
cat filenames.txt | (xargs lzop -dc || true) | python lineprocessor.py > output.txt
所以文件名是逐行输入到 lzop -dc 的。然后将它们解压缩并通过管道传输到我编写的 lineprocessor.py 脚本中。最后lineprocessor.py的输出写在output.txt.
问题是 filenames.txt 中的某些文件未正确压缩,lzop 崩溃,整个管道也是如此。我添加了 ||确实可以防止这种情况发生,但没有帮助。 lzop 没有忽略错误的选项。我不关心压缩文件有误
有什么方法可以轻松解决这个问题? 无论 lzop -dc 命令发生什么,我都希望管道继续。
while read filename; do
lzop -fdc "$filename" | python lineprocessor.py
done < filenames.txt >> output.txt