質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

grep

grepはコマンドライン上でテキスト検索を可能にするユーティリティーです。元はUnixのために用意されたものです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

1300閲覧

Androidアプリ termux上のgrepで、日本語をヒットするようにする方法

p95095yy

総合スコア2

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

terminal

Terminalは、Apple社のmacOSに標準で付属しているUNIX端末エミュレータ。UNIXコマンドによってMacの操作および設定を行うことができます。

grep

grepはコマンドライン上でテキスト検索を可能にするユーティリティーです。元はUnixのために用意されたものです。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

1クリップ

投稿2021/01/07 00:06

Androidアプリ termux 上のgrepで、日本語がヒットしません。

bash

1~ $ echo "aaa" | grep a 2aaa 3~ $ echo "あああ" | grep4(出力なし)

設定が不足しているのでしょうか。
ヒットさせる方法をご存知でしたらお願いします。

grepのバージョンは以下のとおりです。

bash

1~ $ grep --version 2grep (GNU grep) 3.4 3Copyright (C) 2020 Free Software Foundation, Inc. 4License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. 5This is free software: you are free to change and redistribute it. 6There is NO WARRANTY, to the extent permitted by law. 7 8Written by Mike Haertel and others; see 9<https://git.sv.gnu.org/cgit/grep.git/tree/AUTHORS>.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2021/01/07 04:27

1. echo "あああ" | grep "あ" 2. echo "あ" | cat -v 3. locale は、それぞれどうなりますか?
p95095yy

2021/01/07 12:28 編集

ありがとうございます。 以下のようになります。 1. ~ $ echo "あああ" | grep "あ" (表示なし) 2. ~ $ echo "あ" | cat -v M-cM-^AM-^B 3. ~ $ locale No command locale found, did you mean: Command locate in package mlocate localeは、termuxのパッケージにはないのかもしれません。
otn

2021/01/07 13:09

ちゃんとutf-8ですね。 echo "あああ" | LC_ALL=ja_JP.utf-8 grep "あ" でどうでしょう?
p95095yy

2021/01/07 14:30

ご返信ありがとうございます。 残念ながら、以下の結果でした。 ~ $ echo "あああ" | LC_ALL=ja_JP.utf-8 grep "あ" ~ $ (表示なし) 「LC_ALL=ja_JP.utf-8」だけやってみたところ、以下の表示になりました。 ~ $ LC_ALL=ja_JP.utf-8 bash: warning: setlocale: LC_ALL: cannot change locale (ja_JP.utf-8): No such file or directory
otn

2021/01/07 14:37

日本語が扱えない環境と思われます。
otn

2021/01/07 14:47

駄目元で、 echo "あああ" | LC_ALL=C grep "あ"
p95095yy

2021/01/07 22:33

ご返信ありがとうございます。 「echo "あああ" | LC_ALL=C grep "あ"」も表示なしでした。 ありがとうございました。
guest

回答1

0

ベストアンサー

以下のように-Fオプションを指定することで日本語をヒットさせることはできませんか?

bash

1$ echo "あああ" | grep -F あ 2あああ

ちなみに以下のようになるので、マルチバイト文字の解析がうまくできていないように見えます。

bash

1$ echo "あああ" | grep `echo -e "\0343\0201\0202"` 2→ヒットしない 3$ echo "あああ" | grep `echo -e "\0201\0202"` 4あああ 5→ヒットする

投稿2021/02/14 11:10

etsuhisa

総合スコア416

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問