find コマンドの -path パターン指定 における濁点半濁点?の扱い

タイトルの件で -path のパターン指定に濁点半濁点が含まれていると(?)、うまく find コマンドが働いてくれません。具体的には次の様な操作をしています。
# 10.2.5 で ターミナル を利用。
# ターミナル の 文字セットエンコーディング は UTF-8 です。
$ cd 〜
$ cat <<EOF >.inputrc
> set convert-meta off
> set meta-flag on
> set output-meta on
> EOF
$ /bin/bash
$ alias ls='ls -v'
$
$ mkdir tset
$ cd tset
$ touch ハソコン パソコン
$ find . # No.1
.
./パソコン
./ハソコン
$ find ./ハソコン # No.2
./ハソコン
$ find ./パソコン # No.3
./パソコン
$ find . -path './ハソコン' # No.4
./ハソコン
$ find . -path './パソコン' # No.5
$ ls
パソコン ハソコン
$ find . -path './パソコン' # No.6
./パソコン
No.5 までの find コマンド行は全てキーボードから入力していますが、No.6 だけは パソコン の文字を直前の ls コマンドの出力からコピー&ペーストしています。
No.3 と No.5 を比較すると find コマンドはパス名を期待している所に濁点半濁点?があればうまくやってくれますが、パターン部分に濁点半濁点?があるとうまく働きません。しかし、No.6 のように ls コマンドの出力をもってきてやると働いてくれます。
私がやりたい事は No.5 なのですが、どなたかこの問題に対してご教示の程、よろしくお願い致します。

投稿日 2003/04/29 10:12

返信: 12

2003/04/29 10:39 Community User への返信

キーボードから入力した場合:

$ echo -n 'パソコン' | od -x
0000000 e383 91e3 82bd e382 b3e3 83b3
0000014

ls -v
の出力をペーストした場合:
$ echo -n 'パソコン' | od -x
0000000 e383 8fe3 829a e382 bde3 82b3 e383 b300
0000017

日本語名を対象にしない方が良いように思いますが...。

2003/04/29 14:58 Community User への返信

# やはり日本語は鬼門でしょうか…
ls -v の出力中の「パ」がどうやら「ハ」と「゜」で表されているらしいということですね。
すると No.3 がうまく働くという事は、bash もしくは find コマンドがこの変換を行っていると考えられます。もしその変換機能が何処かのライブラリにあるのであれば、
$ find . -path "`henkan ./パソコン`"
のような henkan コマンドを作ってうまくできないかと思うのですが、この辺りの変換機能に関しますご教示の程、よろしくお願い致します。
P.S. 10.2.x に実装されている find コマンドのソースコードは入手可能でしょうか?

2003/04/29 16:54 Community User への返信

>キーボードから入力した場合:
> $ echo -n 'パソコン' | od -x
の結果は
0000000 e383 8fe3 829a e382 bde3 82b3 e383 b300
0000017
となりました。
環境は「MacOSX10.2.5+iTerm0.6.5+jtcsh+ことえり」です。
$ set
version tcsh 6.12.00 (Astron) 2002-07-23 (powerpc-apple-darwin) options 8b,nls,dl,al,kan,sm,rh,color,dspm,filec
どの条件が効いているのかは判りません。
findコマンドは特に入れ替えた記憶はありません。
(忘れてるだけと言う可能性も否定出来ませんが)

2003/04/30 09:07 Community User への返信

環境によっては私の場合の ls -v 出力と同じコードがキーボード入力可能なのですね。
環境という面で整理する為に次の表を作ってみました。
# テキストエディタで作成後、このディスカッションボードにペーストしますので画面上崩れてしまっていましたら、ご面倒をおかけしますがテキストエディタ等にペーストして見ていただけますでしょうか。
# FEP の こ はことえり、A は ATOK15 です。
# 結果は echo -n 'パソコン'|od -x を実行して、'パ' が一文字で表されている場合は 1、二文字で表されている場合は 2 としています。
MacOSX10.2.5
+------+----------------------+----------------------+
|TERM |ターミナル 1.3.1(v82) | iTerm 0.6.5 |
+------+------+------+------+------+------+------+
|シェル| bash | tcsh |jtcsh | bash | tcsh |jtcsh |
+------+--+--+--+--+--+--+--+--+--+--+--+--+
|FEP |こ|A|こ|A|こ|A|こ|A|こ|A|こ|A|
+------+--+--+--+--+--+--+--+--+--+--+--+--+
|結果 |1|1|1|1| | | | | | |2| |
+------+--+--+--+--+--+--+--+--+--+--+--+--+
# ターミナルエンコーディングは UTF-8
私の環境には jtcsh と iTerm がありませんため、jtcsh と iTerm の入手先を教えて頂けませんでしょうか。またもし宜しければ、お時間の許すときに上の表の空いている部分を埋めて頂けることが叶えばと思います。
また、上の表で前提となっている各シェルのバージョンは次のようです。
bash : /bin/bash - GNU bash, version 2.05a.0(1)-release (powerpc-apple-darwin6.0) Copyright 2001 Free Software Foundation, Inc.)
tcsh : /bin/tcsh - tcsh 6.10.00 (Astron) 2000-11-19 (powerpc-apple-darwin) options 8b,nls,dl,al,sm,rh,color
ただし、tcsh で日本語の確定が出来なかったため、ターミナルインスペクタ の エミュレーション の 入力オプション 中にある ctrl + V キーで 8 ビット文字をエスケープする にチェックを入れて試しています。

2003/05/03 11:00 Community User への返信

お二人共に入手先のご教示のほど、ありがとうございました。
前回の表を埋めたものを次に示します。
# テキストエディタで作成後、このディスカッションボードにペーストしますので、ご面倒をおかけしますがテキストエディタ等にペーストして見ていただけますでしょうか。
MacOSX10.2.5
+------+----------------------+----------------------+
|TERM |ターミナル 1.3.1(v82) | iTerm 0.6.5 |
+------+------+------+------+------+------+------+
|シェル| bash | tcsh |jtcsh | bash | tcsh |jtcsh |
+------+--+--+--+--+--+--+--+--+--+--+--+--+
|FEP |こ|A|こ|A|こ|A|こ|A|こ|A|こ|A|
+------+--+--+--+--+--+--+--+--+--+--+--+--+
|結果 |1|1|1|1|*a|*a|2|2|*b|*b|2|2|
+------+--+--+--+--+--+--+--+--+--+--+--+--+
・エンコーディングは共に UTF-8
・FEP の こ はことえり、A は ATOK15 です。
・結果は echo -n 'パソコン'|od -x を実行して、'パ' が一文字で表されている場合は 1、二文字で表されている場合は 2 としています。
・*a : 日本語を入力すると ターミナル が落ちてしまう。
・*b : 日本語入力不可
結果、iTerm ですと 10.2.5 付属の /bin/bash でも望みの入力ができます。
文字コードの話題は難しく理解しづらいのですが、こちらの解説で、「HFS+ は canonical decomposed formの UTF-16でファイル名を保持している」との事ですので、iTerm は UTF-8 エンコーディング設定でも、HFS+ の日本語ファイル名を扱う上で、現実的なキーボードエンコーディング?の仕様になっているのだと想像しています。
ありがとうございました。

2003/05/03 14:20 Community User への返信

お疲れ様でした。
件のページは以前読もうとしたことがありましたけど、難しくていまだに全然分かりません...。(^^;

2003/05/04 11:08 Community User への返信

本題から外れたことをお聞きしますが、教えて頂いた URL には多くのプロジェクトがありました。
もし adc.c というファイルがどこかのプロジェクトにある事が分かっている場合、どのプロジェクトにそれがあるのかを調べる方法はありますでしょうか。

2003/05/04 11:31 Community User への返信

ターミナルからcvsコマンドで情報を得たりできるのでしょうが、私は使ったことがないので、他の方にお任せします。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

find コマンドの -path パターン指定 における濁点半濁点?の扱い

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。