7zip: jak wyodrębnić do standardowego wyjścia?


27

Mam 7z 4.65 i próbuję wyodrębnić pojedynczy plik na standardowe wyjście. Pomoc wiersza polecenia 7z mówi, że -sojest to parametr wiersza polecenia, który należy wypakować do standardowego wyjścia, ale gdy spróbuję:

>>> 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

jak mogę to naprawić? Wygląda na to, że nie ma parametru wiersza polecenia, który tłumiłby normalne standardowe komunikaty 7z.

(edycja: odpowiednikiem operacji w „unzip” byłoby

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

co działa dobrze. Ale chciałbym używać 7z z różnych powodów.)

Odpowiedzi:


16

potokuj go do innego programu, takiego jak

  • trójnik
  • mniej
  • więcej

myślę, że teejest najbliżej tego, czego chcesz, porzuca rzeczy 7z i po prostu daje ci treść.

% 7z e -so dist\dlogpkg.jar META-INF/MANIFEST.MF | tee

Czy jest jakiś szczególny powód, dla którego uważasz, że teew tej sytuacji jest lepszy niż less?
Andy

Dziwny. „mniej” i „tee” robią to, czego oczekuję, ale „więcej” pozostawia w 7z rzeczy ... dziwne! dlaczego to robi?
Jason S

@Andy: „tee” robi nawet mniej niż „mniej” .. bez przewijania itp. Po prostu przepuszcza bajty i nic więcej.
akira

@akira może chciał przesłać dane wyjściowe do innego programu
beppe9000,

@Andy: dlaczego OP chciał potokować na standardowe wyjście, nigdy nie było pytaniem.
akira

8

W systemie Windows 7z x -so my_file.zip 2> NULnie działa, ale przekierowanie do prawdziwego pliku pomaga:

7z x -so my_file.zip 2> _garbage.txt

7

Próbowałem to rozgryźć. To dało mi to, czego chciałem:

7z x -so my_file.zip 2> /dev/null

1
Odpowiednik systemu Windows 7z x -so my_file.zip 2> NULnie działa: w jakiś sposób przekierowuje dane do wartości null.
ansgri
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.