フォルダを繰り返してファイルをインポートし、そのファイルを操作して、ファイルと同じ名前のテキストファイルに出力をリダイレクトしようとしています。 「検索」を使ってみました -
cd /filepath/orig/v1
for dir in $(find . -type d); do
cd $dir
for subdir in $(find . -type d); do
cd $subdir
for file in `ls`; do
echo $file
touch $file.txt
cdo info $file > $file.txt
done
done
done
しかし、これはうまくいきません。ディレクトリ構造は - /filepath/orig/v1/level1/level2/file.nc と似ていますが、サブディレクトリは 2 つ以上のレベルを持つことができます。
ベストアンサー1
これにはループは必要ありません。検索はすべてを行います。
find . -type f ! -name '*.txt' -print -exec sh -c 'cdo info {} > {}.txt' \;
これにより、既存の.txtファイルが破損するため、「* .txtではない」よりも具体的なファイル名フィルタを使用する必要があります。