ファイル名のスペースを無視しながら、サブディレクトリを繰り返して操作を実行する方法

ファイル名のスペースを無視しながら、サブディレクトリを繰り返して操作を実行する方法

私のLinux環境には、次のフォルダ構造があります。

|-- Fixed_Zip
|   |-- ipython_notebooks
|   |   |-- notebook editor for compute_0anXhGEj.ipynb
|   |   |-- notebook editor for compute_aucScores.ipynb
|   |   |-- notebook editor for compute_nG27bM3w.ipynb
|   |   |-- notebook editor for compute_test_scored_scikit1.ipynb

ご覧のとおり、私のファイル名にスペースがあります。Fixed_Zipフォルダ内のすべてのサブディレクトリを繰り返して次のコマンドを実行するにはどうすればよいですかjupytext --to py {file}

もう一つのことは、Groovyファイルでコマンドを実行しているため、調整する必要があるいくつかの構文があるようです。私の個人的な環境では、次のコマンドを実行でき、動作しています。

SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
for i in `find . -name '*.ipynb' -type f`; do
                jupytext --to py "$i"
            done
IFS=$SAVEIFS

ただし、Groovyファイルで同じことを行うと、次のようになります。

sh '''
    SAVEIFS=$IFS
    IFS=$(echo -en "\\n\\b")
    for i in `find . -name '*.ipynb' -type f`; do
        jupytext --to py "$i"
    done
    IFS=$SAVEIFS
'''

次のエラーが発生します。

    raise InconsistentPath(
jupytext.paired_paths.InconsistentPath: './ipytho' is not a notebook.

ベストアンサー1

「空白のあるファイル名」には、findとが必要ですxargs。読んで、man find xargs次のことをしてみてください

find Fixed_Zip -type f -name '*.ipynb' -print0 | \
    xargs -0 -r -n 1 jupytext --to py

おすすめ記事