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
。