ターミナルフォルダ内のフォルダパス

ターミナルフォルダ内のフォルダパス

保存したファイルが多すぎます。

Year -> Month -> Day -> bunch of .nc files

ncファイルを含むすべてのディレクトリのリストを生成したいと思います。各ncファイルのパスを一覧表示できます。

find /Year/ -name *.nc | sort > directory_list.txt

この既定のファイル内のそのフォルダのサブディレクトリで各.ncファイルを見つけます。この結果は "directory_lists" テキストファイルに保存されます。

/2000/01/01/nc_file1.nc
/2000/01/01/nc_file2.nc
/2000/01/01/nc_file3.nc
/2000/01/02/nc_file3.nc
/2000/01/03/nc_file3.nc

ちょっと…各「曜日」のディレクトリリストを持つようにこれをどのように変更しますか?これは上記のコマンドを使用して得られたものと似ていますが、ncファイルに関する情報は含まれません。

私は試した:

find /Year/ | sort > directory_list.txt

しかし、これはすべてのパスを返します。

/Year/
/Year/Month
/Year/Month/Day

私は結果が次のようになりたいと思います:

/2000/01/01/
/2000/01/02/
/2000/01/03/

ちょっと…ディレクトリ名を繰り返さないでください。

私はこれがYearディレクトリから3番目のレベルのフォルダのディレクトリを取得したいと思いますか?どんなアドバイスも本当にありがとうございます。

ベストアンサー1

find /Year/ -name '*.nc' | sed -e 's:/[^/]*$:/:' | sort -u

名前が「* .nc」と一致する1つ以上のファイルを含むディレクトリのリストを提供します。

おすすめ記事