こんにちは現在csvファイルを扱っています。
特殊文字を見つけるのに役立つbashコマンドを見つけたいです。
?, !, #, *, %
文字スペースもあります。
' '
どんな提案でも役に立ちます。 grep機能を使用するつもりですが、これが上記の仕様にどのように適用されるかはわかりません。
ベストアンサー1
これを試してみてください。探したい文字を囲んでください。角かっこ表現[...]
。
grep '[?!#*% ]' infile
次のようないくつかの例外があります。
- if文字:文字は最初に角括弧式の文字を否定するため、最初の文字ではなく
^
どこにでも配置できます。[]
^
- if
]
文字:この文字は角括弧式を終了するためにも使用されるため、最初の文字でなければなりません。 - if
-
文字:この文字は文字範囲を定義するためにも使用できるため、最初または最後の文字でなければなりません。
見つかった文字で何をしたいかによって異なります。
存在する場合、その文字のみを印刷
grep -o '[?!#*% ]' infile
次の文字を削除してください。
tr -d '[?!#*% ]' < infile ##or sed 's/[?!#*% ]//g' infile ##or awk '{ gsub(/[?!#*% ]/, "") }1' infile
スペースに置き換えてください。
tr '[?!#*% ]' ' ' < infile ##or sed 's/[?!#*% ]/ /g' infile ##or awk '{ gsub(/[?!#*% ]/, " ") }1' infile
別の文字列に置き換える:
sed 's/[?!#*% ]/someString/g' infile ##or awk '{ gsub(/[?!#*% ]/, "someString") }1' infile
そのうちの少なくとも1つが発生する行全体を印刷します。
grep --color=none '[?!#*% ]' infile ##or sed '/[?!#*% ]/!d' infile ##or awk '/[?!#*% ]/' infile
など。