Gunzip-Verzeichnis der Dateien und Pipe-Ausgabe Linux

1855
KennyC

Ich möchte ein Verzeichnis mit komprimierten Dateien erstellen und die Ausgabe (unter Beibehaltung der Originaldateien) in ein anderes Verzeichnis leiten. Ich brauche die ursprünglichen Namen, um gleich zu bleiben. So...

gunzip -c *.gz > file/path/filename 

# Search for all .gz in current directory and redirect output here. How do I grab the name of the file found using the wildcard?

Danke für deine Hilfe

Update: Schlussskript unten

FILES= /foo/bar/*.gz for gz in $FILES; do echo "unzipping $gz..." 1>&2 fn=$(basename $gz .gz) gunzip -c $gz > /new/foobar/$fn done 
1
Was hat das mit Python zu tun? Was meinen Sie auch mit "Erhalt der Originaldateien"? Blender vor 10 Jahren 0
Entschuldigung; Nur Python schreiben, es ging ums Gehirn. Mit Originaldateien meine ich, dass gunzip normalerweise die komprimierte Datei löscht und eine Datei ausgibt, die nicht komprimiert ist (daher das Flag -c). vor 10 Jahren 0

2 Antworten auf die Frage

1
Blender

Möglicherweise möchten Sie stattdessen ein Shell-Skript verwenden:

for f in *.gz do zcat "$f" > "other/folder/$(basename "$f" ".gz")" done 
0
Ole Tange

Mit GNU Parallel können Sie:

parallel gunzip -c {} '>' /new/foobar/{/.} ::: /foo/bar/*.gz 

Die Installation von GNU Parallel dauert wörtlich 10 Sekunden:

wget pi.dk/3 -qO - | sh -x 

In den Intro-Videos erfahren Sie mehr: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1

Installierte GNU Parallel aber erhalte diesen Fehler; `parallel: Warnung: Eingang wird vom Terminal gelesen. Nur Experten tun dies absichtlich. Drücken Sie zum Verlassen STRG-D.` Ist es ein Syntaxproblem? Können Sie mit dem bearbeiteten Skript einen Einblick in die Frage geben? KennyC vor 10 Jahren 0
Ausgabe von 'parallel --version'. Wenn Sie nicht wie oben beschrieben installiert haben, werden Sie möglicherweise von http://stackoverflow.com/questions/16448887/gnu-parallel-not-working-at-all aufgerufen Ole Tange vor 10 Jahren 0
Wie oben installiert; Keine Erwähnung von tollef "GNU parallel 20130622" KennyC vor 10 Jahren 0
Wenn es mit "--gnu" funktioniert, haben Sie irgendwo ein "--tollef". Ole Tange vor 10 Jahren 0