interdimensionalmeme@lemmy.ml to Linux@lemmy.ml • 15 hours agozcat shouldn't error out if you try to zcat an uncompressed file, it should just output the damned file !message-squaremessage-square9 fedilinkarrow-up127file-text
arrow-up127message-squarezcat shouldn't error out if you try to zcat an uncompressed file, it should just output the damned file !interdimensionalmeme@lemmy.ml to Linux@lemmy.ml • 15 hours agomessage-square9 Commentsfedilinkfile-text
minus-squareallywilson@lemmy.mlhexbear9·15 hours agoYeah, it's a pain. Leads to bad one liners: for i in $(ls); do zcat $i || cat $i; done linkfedilink
minus-squareMonkderVierte@lemmy.mlhexbear3·edit-240 minutes agoBtw, don't parse ls. Use find |while read -r instead. find -maxdepth 1 -name "term" -print |while read -r file do zcat "$file" 2>/dev/null || cat "$file" done linkfedilink
minus-squareallywilson@lemmy.mlhexbear2·4 hours agoWon't this cause cat to iterate through all files in the cwd once zcat encounters an issue, instead of just the specific file? linkfedilink
minus-squareMonkderVierte@lemmy.mlhexbear1·38 minutes agoYeah, i was tired and had $file there first, then saw that you wanted to cat all in directory. Still tired, but i think this works now. linkfedilink
minus-squareinterdimensionalmeme@lemmy.mlhexagonhexbear4·edit-214 hours agoThanks ! But still we shouldn't have to resort to this ! Also, can't get the output through pipe for i in $(ls); do zcat $i || cat $i; done | grep mysearchterm this appears to work find . -type f -print0 | xargs -0 -I{} sh -c 'zcat "{}" 2>/dev/null || cat "{}"' | grep "mysearchterm" Still, that was a speed bump that I guess everyone dealing with mass compressed log files has to figure out on the fly because zcat can't read uncompressed files ! argg !!! for i in $(ls); do zcat $i 2>/dev/null || cat $i; done | grep mysearchterm linkfedilink
Yeah, it's a pain. Leads to bad one liners:
for i in $(ls); do zcat $i || cat $i; done
Btw, don't parse ls. Use
find |while read -r
instead.find -maxdepth 1 -name "term" -print |while read -r file do zcat "$file" 2>/dev/null || cat "$file" done
Won't this cause cat to iterate through all files in the cwd once zcat encounters an issue, instead of just the specific file?
Yeah, i was tired and had $file there first, then saw that you wanted to cat all in directory. Still tired, but i think this works now.
Thanks !
But still we shouldn't have to resort to this !
Also, can't get the output through pipefor i in $(ls); do zcat $i || cat $i; done | grep mysearchterm
this appears to workfind . -type f -print0 | xargs -0 -I{} sh -c 'zcat "{}" 2>/dev/null || cat "{}"' | grep "mysearchterm"
Still, that was a speed bump that I guess everyone dealing with mass compressed log files has to figure out on the fly because zcat can't read uncompressed files ! argg !!!for i in $(ls); do zcat $i 2>/dev/null || cat $i; done | grep mysearchterm