- ベストアンサー
excelのファイルの文字を検索して表示したい
centosで、excelのファイルの文字を検索してターミナル上に表示したいのですが、うまくいきません。 オウムガイと言う文字があるexcelのファイルがあるデイレクトリで、 strings -f /root/cent/* | grep -i オウムガイと実行してもstrings: '/root/cent/cent': No such fileと出てしまいます。 良い方法があれが御教えください。 また、DOSでもそのような方法があれば御教えください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
stringsはバイナリファイルから探すコマンドなので探せると思いますよ。 ただ、探す文字がどんな日本語コードで入っているかが。 UTF-16なら探す文字をUTF-16で指定してあげないと見つからないかと。 searchedString="`echo オウムガイ | iconv -f EUC-JP -t UTF-16`" env LANG=ja_JP.UTF-16 strings -f -e l * | env LANG=ja_JP.UTF-16 grep ${searchedString} ※ UTF-8端末ならEUC-JPをUTF-8に変えるなど調整は必要かと思いますが。
その他の回答 (5)
- oktuburero
- ベストアンサー率22% (102/446)
素直に全文検索システムのNamazuやHyper Estraierなどを導入したらどうですか?
お礼
検討します。 officeツールの文字を検索するのに適しているものがあれば御教えください
- D-Matsu
- ベストアンサー率45% (1080/2394)
#2です。あまりどうでもよくないので念のために言っておきますが、CentOSなら(何もしてなければ)charsetはUTF8のはずです。 というかEUC-JPは今ではほとんどデフォルトのcharsetとしては使われてません。
お礼
わかりました。
- D-Matsu
- ベストアンサー率45% (1080/2394)
no such fileを吐くってことは、/root/centにcentというディレクトリがいてワイルドカードの展開対象になる→ファイルでないので 読み込めない→エラーの流れでしょうかね。 エラーを回避しつつコマンドを通すなら、 find /root/cent -type f -exec strings -f {} \; | grep -i オウムガイ とか。 ただし#2で言われている通り文字コードが一致しないでしょうからあまり意味はないかも。
お礼
ありが当御座います。 テキストファイル以外からの文字抽出は不可能なのかもしれませんね。
- yorozu_ya
- ベストアンサー率54% (76/140)
文字コードの違いだと思いますよ。 ExcelはタブンUTF-16ではないかと。 Linuxの方はEUCかな。
お礼
ありが当御座います。 テキストファイル以外からの文字抽出は不可能なのかもしれませんね。
- Cupper-2
- ベストアンサー率29% (1342/4565)
xlsファイルはバイナリだから見つけられなくて正解だろうと思います。 csvファイルにすれば見つけられると思いますが、書式などを失います。 xlsファイルを解析するツールを介在させないと無理と思うんですけどいかがでしょう。
お礼
ありが当御座います。 テキストファイル以外からの文字抽出は不可能なのかもしれませんね。
お礼
出来るんですね!! やってみます。ありがとうございます。お忙しい中大変ありがとうございました。
補足
やってみました。どこに不具合があるかよろしければ御教えください。 カレントデイレクトリから検索するのでしょうか? 場所を指定することは出来るのでしょうか? [root@localhost cent]# searchedString="`echo オウムガイ | iconv -f EUC-JP -t UTF-16`"env LANG=ja_JP.UTF-16 strings -f -e l * | env LANG=ja_JP.UTF-16 grep ${searchedString} Usage: grep [OPTION]... PATTERN [FILE]... Try `grep --help' for more information. iconv: 位置 0 で不正な入力シーケンスがありました strings: 'cent': No such file