문자가 하나만 있는 단어를 제거하기 위해 텍스트를 변환하는 방법은 무엇입니까?

문자가 하나만 있는 단어를 제거하기 위해 텍스트를 변환하는 방법은 무엇입니까?

단일 문자 단어를 건너뛰어 입력 스트림의 텍스트를 변환하는 방법. 단어에 숫자와 문자가 포함되어 있으면 이 단어도 생략해야 합니다.

파일 이 있고 Text1.txt변환된 텍스트를 Text2.txt파일에 다시 작성합니다.

Text1.txt에는 다음이 포함됩니다.

I like to be at home alone.
Today I2 am alone at home and can rest.

Text2.txt에는 결과가 포함됩니다.

 like to be at home alone.
Today am alone at home and can rest.

텍스트는 ASCII 형식입니다.

중복될 수 있는 몇 줄이 있으며 그뿐만 아니라 111aaa 유형도 포함되어 있지 않습니다. 저는 최신 버전의 Ubuntu 중 하나를 사용하고 있습니다.

답변1

사용sed

$ sed -E 's/\<[[:alpha:]][[:digit:]]?\>//g' input_file
like to be at home alone.
Today  am alone at home and can rest.

답변2

사용행복하다(이전 Perl_6)

~$ raku -ne 'for .words() { print($_, " ") if .subst(:g, / \d /).chars > 1}; "".put;'  file

입력 예:

I like to be at home alone.
Today I2 am alone at home and can rest.

예제 출력:

like to be at home alone. 
Today am alone at home and can rest. 

Raku는 Perl 계열의 프로그래밍 언어입니다. 즉, 익숙한 -ne비자동 인쇄 라인별 플래그를 사용하여 라인을 읽습니다.

각 줄은 공백으로 구분된 줄로 분할되며 words[ .subst(:g, / \d /)]를 사용하여 각 단어의 숫자가 아닌 \d숫자가 chars1보다 큰 경우 해당 단어( $_중괄호 안의 주제 변수로 표시됨)가 printed로 표시되고 그 뒤에 공백이 옵니다 " ".

각 처리 라인의 끝에 개행 문자 "".put( ... 는 다음 put을 의미합니다.종결자를 사용하여 인쇄).

https://raku.org
https://rakudo.org

관련 정보