I have 7z 4.65 and am trying to extract a single file to standard output. The 7z command-line help says -so is the command-line parameter to extract to standard output, but when I try this:

>>> 7z e -so dist\dlogpkg.jar META-INF/MANIFEST.MF

7-Zip 4.65  Copyright (c) 1999-2009 Igor Pavlov  2009-02-03
Error:
I won't write data and program's messages to same terminal

how can I fix this? There doesn't seem to be a command line param to suppress the normal 7z stdout messages.

(edit: the equivalent operation in "unzip" would be

unzip -p dist\dlogpkg.jar META-INF/MANIFEST.MF

which works fine. But I'd like to use 7z for various reasons.)

link|improve this question

71% accept rate
feedback

2 Answers

up vote 5 down vote accepted

pipe it to another program such as

  • tee
  • less
  • more

i think tee comes closest to what you want, it drops the 7z stuff and just gives you the content.

% 7z e -so dist\dlogpkg.jar META-INF/MANIFEST.MF | tee
link|improve this answer
Is there any reason in particular why you think tee is better in this situation than less? – Andy Jun 3 '10 at 17:51
Odd. "less" and "tee" do what I expect, but "more" leaves in the 7z stuff.... bizarre! why does it do this? – Jason S Jun 3 '10 at 18:01
@Andy: "tee" does even less than "less" .. no scrolling back etc. it just lets the bytes through and not a thing more. – akira Jun 3 '10 at 20:51
feedback

I was also trying to figure this out. This got me what I wanted:

7z x -so my_file.zip 2> /dev/null
link|improve this answer
feedback

Your Answer

 
or
required, but never shown

Not the answer you're looking for? Browse other questions tagged or ask your own question.