파일 이름의 공백을 무시하면서 하위 디렉터리를 반복하고 작업을 수행하는 방법

파일 이름의 공백을 무시하면서 하위 디렉터리를 반복하고 작업을 수행하는 방법

내 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

관련 정보