特殊文字とスペース検索

特殊文字とスペース検索

こんにちは現在csvファイルを扱っています。

特殊文字を見つけるのに役立つbashコマンドを見つけたいです。

 ?, !, #, *, %

文字スペースもあります。

' '

どんな提案でも役に立ちます。 grep機能を使用するつもりですが、これが上記の仕様にどのように適用されるかはわかりません。

ベストアンサー1

これを試してみてください。探したい文字を囲んでください。角かっこ表現[...]

grep '[?!#*% ]' infile

次のようないくつかの例外があります。

  • if文字:文字は最初に角括弧式の文字を否定するため、最初の文字ではなく^どこにでも配置できます。[]^
  • if]文字:この文字は角括弧式を終了するためにも使用されるため、最初の文字でなければなりません。
  • if-文字:この文字は文字範囲を定義するためにも使用できるため、最初または最後の文字でなければなりません。

見つかった文字で何をしたいかによって異なります。

  1. 存在する場合、その文字のみを印刷

    grep -o '[?!#*% ]' infile
    
  2. 次の文字を削除してください。

    tr -d '[?!#*% ]' < infile              ##or
    sed 's/[?!#*% ]//g' infile             ##or
    awk '{ gsub(/[?!#*% ]/, "") }1' infile
    
  3. スペースに置き換えてください。

    tr '[?!#*% ]' ' ' < infile             ##or
    sed 's/[?!#*% ]/ /g' infile            ##or
    awk '{ gsub(/[?!#*% ]/, " ") }1' infile
    
  4. 別の文字列に置き換える:

    sed 's/[?!#*% ]/someString/g' infile   ##or
    awk '{ gsub(/[?!#*% ]/, "someString") }1' infile
    
  5. そのうちの少なくとも1つが発生する行全体を印刷します。

    grep --color=none '[?!#*% ]' infile    ##or
    sed '/[?!#*% ]/!d' infile              ##or
    awk '/[?!#*% ]/' infile
    
  6. など。

おすすめ記事