단일 문자 단어를 건너뛰어 입력 스트림의 텍스트를 변환하는 방법. 단어에 숫자와 문자가 포함되어 있으면 이 단어도 생략해야 합니다.
파일 이 있고 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
숫자가 chars
1보다 큰 경우 해당 단어( $_
중괄호 안의 주제 변수로 표시됨)가 print
ed로 표시되고 그 뒤에 공백이 옵니다 " "
.
각 처리 라인의 끝에 개행 문자 "".put
( ... 는 다음 put
을 의미합니다.종결자를 사용하여 인쇄).