2016-05-31 4 views
0

zipファイルが含まれていてもいなくてもよい一連の番号が付いたサブディレクトリがあります。これらのzipファイルには、必要な単一行の.txtファイルがあります。 findとunzip -pの組み合わせを使用して、同じ出力行のファイルパスと単一行の内容をリストすることはできますか?私は結果を.txtに保存し、それをExcelにインポートして作業したいと思います。zipファイル、プリントパス、および郵便番号の検索

私は成功した一行見つけて出力することができ、メインディレクトリから:

find . -name 'file.zip' -exec unzip -p {} file.txt \; 

私は、この解凍コマンドの出力に発見出力(すなわち、ファイルパス)を前に付けることができますどのように?理想的には、テキストファイルの各行を次のようにしたいと思います。

./path/to/file1.zip "Single line of file1.txt file" 
./path/to/file2.zip "Single line of file2.txt file" 

などです。誰か提案を提供できますか?私は、単純なコマンドを超えて、Linuxのコマンドラインではあまり経験がありません。

ありがとうございます。

答えて

0

、シェルスクリプトを呼び出すためにexec機能を使用し、その後、あなたはシェルスクリプトに実行するすべてのコードを入れて今のところすなわち

cat finder.bash 
#!/bin/bash 

printf "[email protected] : " # prints just the /path/to/file/file.zip 
unzip -p "[email protected]" file.txt 

、仕事にそれを取得し、あなたがすることは一般的なことができます後でfile.txt以外のものを渡してください。

chmod 755 finder.bash 

findからそれを呼び出すスクリプトを実行可能にします。すなわち

find . -name 'file.zip' -exec /path/to/finder.bash {} \; 

(これは簡単にテストすることはできませんので、エラーメッセージでコメントに返信してください)。