각 xlsx에 대해 추출된 모든 파일의 새 디렉터리 이름으로 디렉터리/파일 이름을 유지하면서 모든 하위 디렉터리에서 반복적으로 추출하려는 Excel 파일이 많이 있습니다.
내가 찾은 파일을 추출하세요.이것. 불행히도 내 bash 지식에는 하나의 명령으로 모든 작업을 수행할 수 있는 기술이 부족합니다.
그래서 먼저 그것을 더 작은 부분으로 나누려고 노력합니다.
for z in ./*
do name="${z%%_*}"; dest=".${name//[ .-]/}"; mkdir "$dest";
done
내가하려고 *
하면
for z in ./*
현재 디렉토리의 모든 파일을 검색하고 예상과 다른 결과를 얻습니다.
find . -name "*.xlsx"
그래서 나는 그것을 되돌릴 수 있는지 시도합니다.
for f in | find . -name "*.xlsx"; do d="${f}"; mkdir -p "$d"
하지만 내 파이프라인이 잘못되었기 때문에 분명히 작동하지 않습니다.
답변1
bash
당신의 이별이 옳은 것인지 모르겠어요 .
오래 전에 bash 사용을 중단했기 때문입니다.
그러나 루프에서 find의 출력을 원할 경우 다음을 시도하십시오.
find . -name '*.xlsx' -print0 |
while IFS= read -r -d $'\0' z; do
name="${z%%_*}"
dest=".${name//[ .-]/}"
mkdir "$dest"
done