特殊ロジックをファイル拡張子とどのように関連付けることができますか?

特殊ロジックをファイル拡張子とどのように関連付けることができますか?

ファイル拡張子に基づいてテキストエディタで特別なロジックを呼び出す簡単な方法はありますか?

たとえば、ファイルコレクションを含む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

myprogmyprog edit myfile.zip上記は、あなたの質問に示すように、あなたが電話したいものです。

unzip上記はzip正確にパラメータファイルまたはzipファイルで実行したいコマンドではない可能性がありますpdf2text。上記は単にアイデアを提供するためのものです。サポートtext2pdfする各タスク(タスク+拡張)を実行する別の関数を作成し、スクリプトに渡された引数に従って適切な関数を自動的に呼び出します。edit.zip

おすすめ記事