ファイル名とソースディレクトリ情報を提供する新しいファイルを作成する方法

ファイル名とソースディレクトリ情報を提供する新しいファイルを作成する方法

多くのサブディレクトリとファイルを含むディレクトリがあります。各ファイル名とソースディレクトリパスに関する情報を提供するファイルを作成したいと思います。

たとえば、

Sample1およびSample2サブディレクトリを含むSampleというフォルダがあります。

例1ディレクトリにはがあり、ex1.csv例2ディレクトリにはがあります。ex2.csvex3.csvex4.csv

次の方法で情報を提供するテキストファイル(または)CSVファイルを作成する必要があります。

ex1.csv,sample/sample1
ex2.csv,sample/sample1
ex3.csv,sample/sample2

誰かがUNIXでスクリプトファイルを作成するのに役立つことができれば良いでしょう。

私は試した:$ find sample -type f -printf '%f,%h\n'

私はSolarisを使用しているので、追加のprintfユーティリティをインストールすることはできず、権限もありません。

答え1

これがあなたのSolarisと互換性があることを願っています。 SunOS 5.10とbash 4.3.26でテストしました。

find . | while read f; do
    if [ ! -d "$f" ]; then
        echo $(basename "$f"),$(dirname "$f")
    fi
done

これは単にファイル名を分割するためにおよびbasenameを使用します。dirname

$ find test | while read f; do if [ ! -d "$f" ]; then echo $(basename "$f"),$(dirname "$f"); fi; done
ex4,test/sample2
ex3,test/sample2
ex2,test/sample1
ex1,test/sample1

関連情報