ファイル拡張子に基づいてテキストエディタで特別なロジックを呼び出す簡単な方法はありますか?
たとえば、ファイルコレクションを含むzipファイルがあるとします。
text.txt
image.jpg
othercrap.crap
vi myarchive.zip
ファイル拡張子ベースの手段でファイルを開くときにテキストエディタに自動的にコマンドを実行させる方法はありますか?
ベストアンサー1
「上記でviを使用することができ、テキスト部分が自動的にフォーマットされる方法を知ることができれば良いでしょう。」しかし、それはおそらくあなたが望むものです(テストされていません)。
#!/usr/bin/env bash
tmp=$(mktemp) || exit 1
trap 'rm -f "$tmp"; exit' 0
edit_zip() {
unzip "$1" > "$tmp" &&
vi "$tmp" &&
zip "$tmp" > "$1"
}
edit_pdf() {
pdf2text "$1" > "$tmp" &&
vi "$tmp" &&
text2pdf "$tmp" > "$1"
}
act_ext="${1}_${2##*.}"
if declare -F "$act_ext" > /dev/null; then
"$act_ext" "$3"
else
printf 'Operation "%s" not supported.\n' "$*"
fi
myprog
myprog edit myfile.zip
上記は、あなたの質問に示すように、あなたが電話したいものです。
unzip
上記はzip
正確にパラメータファイルまたはzipファイルで実行したいコマンドではない可能性がありますpdf2text
。上記は単にアイデアを提供するためのものです。サポートtext2pdf
する各タスク(タスク+拡張)を実行する別の関数を作成し、スクリプトに渡された引数に従って適切な関数を自動的に呼び出します。edit
.zip