주어진 텍스트 파일에서 영숫자 문자만 추출하여 인쇄하는 방법은 무엇입니까?

주어진 텍스트 파일에서 영숫자 문자만 추출하여 인쇄하는 방법은 무엇입니까?

아래에 붙여넣은 텍스트와 비슷한 텍스트 파일이 있습니다. 본질적으로 영숫자 문자를 파일로 추출하고 다른 모든 문자를 무시하고 싶습니다.

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

(단, GNU tr 은 현재 멀티바이트 문자를 지원하지 않습니다.)

답변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이는 전역적으로 이 작업을 수행하고 각 행의 첫 번째 인스턴스에서 중지하는 대신 이 작업을 계속한다는 의미입니다.

관련 정보