Як я витягую лише алфавітно-цифрові символи з заданого текстового файлу та роздруковую їх?


3

У мене є текстовий файл, схожий на текст, який вставлено нижче. Я хочу витягнути у файл будь-які символи, що мають буквено-цифровий характер, і проігнорувати все інше.

Який найпростіший спосіб зробити це ( grep, cut)?

%[{]$#{!^]^$#+*$}#*)(]!@^&#){][$)}!+%^)@#&!%(+^^($(%}^+[*)#+{%!))}(*&]__})][_))}#
%())#&##{]$#$](&$%&&$)^{(@%)$%()#)&&*{]&^^+%$##%{!(_$(**&(_]+{%[%$!_){$*@@++]&^$(
%@+{+&%]$)+@({$(+{!*#(%)]+[}){]]#)*[]%&{+)$){!&$]+^++_@]#%)[&&^%]#@#@)]@}%$[_*@%)
%[&*^*})@(!{&^#!([%@_![{)+)$}_+)%&^#@#$$}))^&)}({+*&_()&@]$^#(&&{){)_[}{@(}#)!)%&
%({+$[!#()[]%{$_*]*^%&]@{^@{)}}_^}@!^*)_[([{}]{*#{]&}}[$_[}!%%&_{{!$[}&[[@#[&_$()
%*_$+)&}*){${}!]+%[{{!+)+{!&]$!}{_]&)!!^+){&*#{@!##_(^%^$([!+&+($&)##[&[^_{##{(**
%{{)#*%@*[(^(}!%}@*}@+]^_}&&&}&{[$(@[#*+%[&%{$$**]]%(!$+$!]^+[^_(&*{#_^%[[#+{]#_[
%*}]#)!%!_[})^%*@{!{$)*_+$$*}%(&]%^+$@!&{[]}**})}#}[#{%{$#@##(])&)((${^]^[%^&(!_&

Можливо, я відповів на власне запитання. Ось команда, яку я використав: 'grep -oE "[[: alnum:]]" findnormalchars.txt "
квітня 1616

Вибачте, якщо це було поганим питанням, перший раз розміщуючи повідомлення. Опрацьовуючи сценарії баш-сценаріїв.
jro

Відповіді:


1

Я не бачу там ні алфавітно-цифрових символів, але ця команда sed повинна працювати sed 's/[^a-zA-Z0-9]//g' /tmp/foobarтам, де /tmp/foobarвхідний файл.

s/a/b/означає замінити будь-який примірник a на b, [^a-z]означає будь-який символ, який не є через z. s/a/b/gозначає зробити це в усьому світі, а не зупинятися на першій інстанції на кожному рядку, продовжуйте робити це.


щоб по-справжньому глибоко вивчити регулярні вирази, рекомендую перевірити цю книгу: shop.oreilly.com/product/9780596528126.do :)
Jacob Minshall

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, який наразі не підтримує багатобайтові символи)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.