pdf 파일을 스크립트에 전달하고 다양한 부분(예: 경로, 이름, 확장자)을 추출하여 조직 파일에 저장된 일부 관련 설명을 찾을 수 있습니다.
현재 작업 디렉토리에 경로가 포함되지 않은 파일을 처리하고 싶습니다(예: 또는 file.pdf
대신 ). 현재 설정을 해야 하므로 문제가 있습니다 ../file.pdf
/path/file.pdf
fdir
for fl in "$@"; do
fnme=${fl##*/}
fext=${fl##*.}
fdir=${fl%/*}
fnam=${fnme%.*}
find "$fdir" -type f -name "${fnam}.org"
done
답변1
유틸리티를 사용하면 디렉터리 경로 없이 경로 이름 인수가 dirname
올바르게 반환됩니다 ..
for pathname do
name=$( basename "$pathname" )
find "$( dirname "$pathname" ) -name "${name%.*}.org" -type f
done
로 끝나는 파일 이름을 다루고 있다는 것을 알고 있다면 .pdf
다음을 사용할 수 있습니다.
for pathname do
find "$( dirname "$pathname" ) -name "$( basename "$pathname" .pdf ).org" -type f
done
쉘이 있으면 zsh
사용할 수 있습니다
for pathname
find $pathname:h -name $pathname:t:r.org -type f
done
:h
경로명의 "head"를 디렉터리 경로 부분으로 반환하고, :t
파일 이름 부분인 "tail"을 반환합니다. 를 사용하여 확장자가 없는 파일 이름의 "루트"를 얻을 수 있습니다 :r
.
원본 파일과 동일한 디렉터리만 확인하려는 경우 find
재귀를 제한해야 합니다. -maxdepth 1
최신 버전을 사용할 수 있습니다 find
.
답변2
비어 있으면 기본적으로 ./
검색 디렉터리를 사용할 수 있습니다. $fdir
예를 들어:
find "${fdir:-./}" -type f -name "$fnam.org"