2016-07-01 7 views
-2
/volume1/Folder/0000/AAA/one 
/volume1/Folder/0001/AAA/two 
/volume1/Folder/0001/BBB/three 
/volume1/Folder/0002/CCC/four 
... 

すべての空でないフォルダディレクトリを持つ.txtファイルを取得したいとします。しかし、私は、このファイルが/volume1/Folder/なしで書きたい、つまり、私はこのようにそれを印刷したい:コマンドと半経路の検索

0000/AAA/one 
0001/AAA/two 
0001/BBB/three 
0002/CCC/four 
... 

これは私が使用しているが、これは完全なパスを書いている(と私はことを知っているコードです。 -printf「%F \ n」をを追加することによって、それが唯一の最後のフォルダを書き込みますが、私はそれをしたくない!)

find /volume1/Folder/* -mtime -1 -type d -maxdepth 2 -not -empty > /volume1/Folder/NotEmptyFolders.txt 

誰かが私を助けることができますか?

答えて

0

あなたはsed

find /volume1/Folder/* -mtime -1 -type d -maxdepth 2 -not -empty -exec bash -c 'echo ${0#/volume1/Folder/}' {} \; > /volume1/Folder/NotEmptyFolders.txt 

しかし、このような別のコマンドへの出力が再び新しいシェル(bash -c)を作成し、むしろあなたが|を行うと/ sedのような他のコマンドを使用することができますパイプにしたくない場合は、これを試してみてくださいawkを削除する/volume1/Folder/

+0

クール、それは動作します。唯一の問題は、それぞれに新しい行をつけることなくすべてのパッセを書いていることです。あなたはそれを修正する方法を知っていますか? – blocnt

+0

この場合、sed/awk over findを使用するのが前提ですか? – blocnt

+0

出力をファイルにリダイレクトした後、同じ行にすべてが表示されましたか、すべてに変数を割り当てました – Fazlin

関連する問題