2016-11-12 1 views
-1

私は1500個の7zipアーカイブを持っています。各アーカイブには2〜10個のファイルがあり、サブディレクトリはありません。各7zipアーカイブから1つのファイル(any)を一括して抽出します(Unix)

各ファイルの拡張子は同じですが、ファイル名は異なります。

各アーカイブから1つのファイルだけが必要ですが、これを一括して実行したいと思います。 1つのファイルしか取り出されない限り、どのファイルを取り出しても気にしません。最初のファイル、最新のファイル、最大のファイル、最小のファイル、それは問題ではありません。ここで

は例です:私は同等の何かを実行したい

aa.7z {blah 56.smc, blah 57.smc, 1 blah 58.smc} 
ab.7z {xx.smc, xx 1.smc, xx_2.smc} 
ac.7z {1.smc} 

7z e *.7z # But somehow only extract one file 

ありがとうございました!

+1

アーカイブを一覧表示し、出力を解析して1つのファイルを選択する必要があります。 –

+0

ありがとう - 私は7z lを使用してこれを試しました(私はリスト用ですが)、使いやすいフォーマットではなく、パイプ可能ではありません。 7z lパーサのようなものがない限り... – MattWithoos

答えて

0

は最終的に私の解決策は、すべてのファイルを抽出したディレクトリで次のように実行することでした:

for n in *; do echo "$n"; done > files.txt 

私はその後、Excelにそのリストをインポートし、そしてファイルのタイトルを分割特殊文字でファイルを分割しました(例えば:Some Title(V1)[X2] .smc)の中の適格なデータで、特に括弧の区切り文字を使用しました。

その後、私はすべての複製を削除し、私にはzipからそれぞれ1つのエディションしか残さなかった。私は最終的に列を再作成しました(残念ながら、分割中に括弧が削除されて、次の列に内容があるかどうかの条件を追加する関数を作成しました)、次にStackOverflowを解読した後にfiles.txtを再保存しました、入力ファイル(files.txt)に基づいて削除されたファイル。これについての警告の言葉、ファイル名のスペースはrmとxargsに問題を引き起こすので、引用符で変数をカプセル化しなければなりませんでした。

最終的にこれはまだ十分に私に役立たなかったので、私はちょうど別のリソースを完全に使いました。

この回答を投稿すると、同じような苦境にいる他の人たちには別の解決策が見つかるようになります。

関連する問題