• ベストアンサー

LINUXで半角の英数字以外の文字列をgrep検索したい

LINUXで半角の英数字以外の文字列をgrep検索したい たとえば a!3" とか 30%(under_s) とか grepでもなんでもよいですが上記のような半角英数字以外の文字列を検索できますでしょうか。 grep -c で、半角英数字以外の文字列があるかどうか確認したいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

指定した文字以外にマッチする[^]で、英数字は[:alnum:]になるので、「半角英数字以外の文字列」を素直に解釈すると [^[:alnum:]] となりますが.... 「文字列」というのが、1行全部のことでなかったら(スペースとかカンマで区切られた一つ一つだとか) もう少し追加する必要があります。

r-linux
質問者

お礼

ありがとうございましたー いちよう1行にカンマが3つだけだった場合にのみ それぞれのフィールドに分けて判断させていくので これで問題なさそうです! どもでした!

関連するQ&A

  • 複数の文字列を含むファイルの検索-linux

    linuxにおいてファイル内の文字列を検索するのにgrepを用いますが、 複数の文字列を含むファイルを検索するにはどうしたらよいでしょうか。 同じ行ではなく別の行にある場合で、ファイル名を出力したいです。 つまり ~~~~~~~~~ ~~~~~~~~文字列1  ~~~~~~~~~~ ~~~~~~~~ ~~~~~~~文字列2 のような記述のあるファイルを探すにはどうしたらよいでしょうか。

  • なぜ英数字を半角にする人が多いのか?(なぜ英数字以外の記号は半角にしないのか?)

    ネット上を見てると、英数字……取り分け数字は、 どんな場合でも(1桁でも2桁でも関係なく)半角にしている人が多いように思えます。 これはなぜでしょうか? 「それは昔からの決まりだから。」と聞いたことがあるのですが、 そういう人の中には、僕が思うに英数字を半角にしているだけで、 「!」「?」「#」「&」など、カタカナ以外の半角にできる記号を、半角にしていない人がいるんです。 これっておかしいと思います。 おそらく英数字を半角にするのが昔からの決まりだったのは、 昔のパソコンを使っていた人の多くが1バイト文字を使っていたからでしょうし……。 それなら、カタカナは別として、英数字だけでなく、他のすべての記号を半角入力するべきだと思います。 英数字だけ半角なんて、絶対中途半端だし、変です。 「英数字だけ半角にするのに、他の記号は半角にしない理由。」 回答お待ちしております。

  • 文字列検索(grepのようなもの)のCソースコード知りませんか?

    Cソースコードを探しています。文字列検索用のコードです。UNIXのgrepみたなことができればと思います。 ご存知でしたら教えてください。お願いします。

  • セル内の記号(英数字以外全て)の数の取得

    A列に商品型番のようなデータが半角英数字記号にて列挙されているのですが(2,000個ほど)、 セルの中に英数字以外の文字の、 ・有無 ・文字数 を取得するにはどうしたらよいでしょうか? (例)A列に文字列、B列に英数字以外の文字の有無、英数字以外の文字数が入ります A列、B列、C列 C1k-B/W、有、2 x9-1、有、1 Y158*1-w-6/b-7、有、5 A123、無、0 文字数が分かるだけでOKです。(そうすれば有無は必然的に分かるので) 複数の関数を駆使する都合で使用列がもっと右に伸びても構いません。

  • googleで、半角の#を含めた文字列で検索したい

    googleで半角の#を含めた文字列で検索したいのですが、普通に入れると#が消えてしまいます。どのようにすれば半角の#を含めた文字列での検索ができるでしょうか。

  • linuxのgrepコマンドに関して

    linuxのgrepコマンドに関して ファイルの中から、1や2という文字が単独で存在する行を検索したくて grep 1 file名 とするのですが、そうすると11や23など文字が単独ではなく、含まれている行が出力されます。 含まれる、ではなく文字そのものを検索するにはどうしたらよいでしょうか?

  • grepコマンドでの文字列検索

    grepコマンドについて質問です。 grepコマンドでCSVファイルを参照し、ある項目に特定の文字列でないものがあれば、そのファイル名を取得する処理をしたいと思っています。 つまり、ある項目を$strとすると $str <> 'aaaaaa' という処理をgrepで行おうと考えています。 現状では、 grep -l '^[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^,]*,[^(aaaaaa)]' ファイル名 等を試していますが、[^(aaaaaa)]だと一文字目しか判別できていないようです。[^a{6}]などもうまくいきません。 何かいい方法があれば教えて頂きたいと思います。 宜しくお願いします。

  • VBScriptで半角カナと半角英数字を判断する方法

    VBScriptを使用して文字列が半角カナ文字か半角英数字か を調べたいのですが方法がわかりません。 調べたところ 半角文字かどうかは If 0<=ASC(s) And Asc(s) <=255 Then 処理 Else 処理 End If で調べられるようなのですが、半角カナなのか半角英数文字 なのかを知るためにはどうしたらよいのでしょうか? ANSI文字コードがわかれば半角カナと英数字とで 細かく条件を分けれそうなのですが、ANSIコードが 載っているサイトを探してもなかなかみつかりません。 どなたかよい方法をご存知でしたら教えてください。

  • ユニークな文字列を作りたい。

    C♯、.NET FrameWordk2.0環境です。 戻り値として32~35桁のユニークな文字列(半角英数字のみ)を返すメソッドを 作りたいと思っています。 GUIDを発行してやれば良いかと思ったんですが、ハイフンが入っていたり、 アルファベットが大文字小文字混じっていたり(小文字のみにしたい)で、そのままでは 使えません。 発行したGUIDを、サクッと半角英数字(英字は小文字に置換)できるような方法は ないでしょうか? または、もっと簡単にユニークな文字列を発行できる方法がありましたら、ご教授 いただけるとありがたいです。 宜しくお願いします。

  • 複数の文字列を検索

    あるログファイルの文字列を取得して。検索でヒットした文字列行 を返すスクリプトを作成しております。 検索:"OK"    日付 対象行 : OK! Tue Jul 19 文字列"OK"は普通に # grep "OK" ログファイルPath で検索できますが、 文字列と日付を両方引っ掛ける場合は・・・ grep -e "OK" -e env LANG=c date -u +"%a %b $d" ログファイルPath 当然コマンドエラーになります。 dateコマンドから日付を取得して、grepにて引っ掛ける方法を知りたいので すが、お分かりになる方、ご教授お願い致します。