下に貼り付けたテキストに似たテキストファイルがあります。本質的に英数字をファイルに抽出し、他のすべての文字を無視したいと思います。
grep
この(、)を実行する最も簡単な方法は何ですかcut
?
%[{]$#{!^]^$#+*$}#*)(]!@^&#){][$)}!+%^)@#&!%(+^^($(%}^+[*)#+{%!))}(*&]__})][_))}#
%())#&##{]$#$](&$%&&$)^{(@%)$%()#)&&*{]&^^+%$##%{!(_$(**&(_]+{%[%$!_){$*@@++]&^$(
%@+{+&%]$)+@({$(+{!*#(%)]+[}){]]#)*[]%&{+)$){!&$]+^++_@]#%)[&&^%]#@#@)]@}%$[_*@%)
%[&*^*})@(!{&^#!([%@_![{)+)$}_+)%&^#@#$$}))^&)}({+*&_()&@]$^#(&&{){)_[}{@(}#)!)%&
%({+$[!#()[]%{$_*]*^%&]@{^@{)}}_^}@!^*)_[([{}]{*#{]&}}[$_[}!%%&_{{!$[}&[[@#[&_$()
%*_$+)&}*){${}!]+%[{{!+)+{!&]$!}{_]&)!!^+){&*#{@!##_(^%^$([!+&+($&)##[&[^_{##{(**
%{{)#*%@*[(^(}!%}@*}@+]^_}&&&}&{[$(@[#*+%[&%{$$**]]%(!$+$!]^+[^_(&*{#_^%[[#+{]#_[
%*}]#)!%!_[})^%*@{!{$)*_+$$*}%(&]%^+$@!&{[]}**})}#}[#{%{$#@##(])&)((${^]^[%^&(!_&
答え1
ASCII 英数字にのみ適用されます。
LC_ALL=C tr -cd '[:alnum:]' <file
英数字の場合あなたの地域に基づいて、のみ:
tr -cd '[:alnum:]' <file
または、ロケールを明示的に定義します。
LC_ALL=en_US.UTF-8 tr -cd '[:alnum:]' <file
答え2
そこには英数字は表示されませんが、このsedコマンドはsed 's/[^a-zA-Z0-9]//g' /tmp/foobar
入力ファイルがある場所で機能する必要があります。/tmp/foobar
s/a/b/
a のすべてのインスタンスを b に置き換えます。[^a-z]
つまり、aからzまでではないすべての文字を意味します。s/a/b/g
これは、グローバルにこれを行い、各行の最初のインスタンスで停止するのではなく、この操作を続行することを意味します。