나는 Kali Linux에서 crunch를 사용하여 lalphanumeric(af 3-9) 명령을 사용하여 10자의 긴 단어 목록을 생성했습니다. 나는 그것이 대용량 파일이라는 것을 알고 있으므로 이 작업을 수행하지 말라고 말하지 마십시오. a@@@@@@@@, b@@@@@@@@@ 등을 사용하여 목록을 만들었습니다.
이제 나에게 필요한 것은 첫 글자 뒤의 모든 숫자를 포함하거나 모두 글자인 단어를 제거하는 것입니다. 예를 들어 a123456789, a587636486, a888888888...을 삭제하거나. agdujcjfuf, aaaaaaaaaa.. (모두 문자이거나 모든 숫자입니다. 이렇게 하면 내 단어 목록의 크기가 크게 줄어들 것이라고 가정합니다..
하지만 분명히 최소한 3개의 숫자나 3개의 문자를 포함하는 모든 단어를 유지해야 합니다.
누구든지 나에게 명령을 내릴 수 있습니까?
'rm -ia[0-9]' . . . . . . . . . 'rm -I a[az]'. . . 아마도. ?
먼저 확인하기 전까지는 이 작업을 수행하고 싶지 않습니다.
답변1
삭제할 값이 이라는 파일에 있다고 가정합니다 file.txt
.
txt 파일에 쓰고 다음과 같이 저장합니다 script.sh
.
#!/bin/bash
awk '/^[a-z]*$/ {next} # Do not print lines that are all lowercase letters.
/^[A-Z]*$/ {next} # Do not print lines that are all lowercase letters.
/^a[0-9]*$/ {next} # Do not print lines that are an a followed by all numbers.
/^[a-z][0-9]*$/ {next} # ONE lowercase letter (anyone) followed by numbers.
{print} ' file.txt > result.txt
bash script.sh
그런 다음 명령줄에 작성하여 실행합니다.
"프로그램"이란 "정규식"을 사용하여 특정 구조의 텍스트를 선택하고, 특정 구조가 겹칠 때 이를 처리하는 방법을 결정하는 것입니다.