利用可能なすべてのterminfoエントリ(現在コンパイルされたデータベース全体)をterminfoソースファイルとどのように比較しますか?
ユーティリティにはオプションがinfocmp
あります-F
が、2つのファイルを比較する必要がありますが、すべてのエントリをエクスポートしてデータベース全体のファイルを生成するオプションはありません。各項目に対して呼び出す必要があるため、各項目を個別にエクスポートする必要があります。すべてのエントリを一度にエクスポートする方法がある場合は、infocmpを2回呼び出す2つの手順で実行できます(一度はすべてのデータベースをエクスポートし、もう1つはファイルを比較します)。
ベストアンサー1
ソースコードを新しいディレクトリにコンパイルし、それを使用してinfocmp -d
各項目を比較できます。
mkdir -p dir && cd dir
TERMINFO=$PWD tic -x /path/to/terminfo.src
for entry in */*; do
infocmp -x -d -B "$PWD" "${entry#*/}" "${entry#*/}"
done
関連コンテキストとの違いのみを印刷するには、次のようにします。
mkdir -p dir && cd dir
TERMINFO=$PWD tic -x /path/to/terminfo.src
for entry in */*; do
LC_ALL=C infocmp -x -d -B "$PWD" "${entry#*/}" "${entry#*/}" |
awk '
/^comparing/ {entry=$1" "$2; next}
$1 == "comparing" {section=$0; next}
entry {print entry; entry = 0}
section {print section; section = 0}
{print}'
done