텍스트 파일에서 특정 길이의 모든 문자열을 찾아 각 문자열을 새 변수로 저장할 수 있는 코드가 있는지 궁금합니다.
예를 들어 텍스트 파일에는 5개의 문자열이 있습니다. 그 중 2개는 3자 길이입니다. 아이디어는 8자 길이의 문자열을 모두 구문 분석하여 순서대로 변수에 넣는 것입니다(예 var1
: var2
, , ) var3
.
어떻게 해야 하나요?
감사해요!
(궁금하신 분들을 위해 개인 키가 포함된 비트코인 지갑이 여러 개 들어 있는 오래된 파일을 내 컴퓨터에서 찾아 잔액을 확인하기 위해 모두 변수로 저장하려고 했습니다.)
비트코인 주소에 대한 이 게시물을 확인하세요. 어떤 문자가 포함되어 있는지 확인하려면 비트코인 주소 웹사이트를 방문하세요.여기
답변1
다음은 사용 중인 모든 고유 8자 단어의 알파벳순 목록 예입니다 man bash
.
bash # clean temporary environment
. <(man bash | tr -sc '[[:alpha:]]' '\n' |
egrep '^[a-z]{8}$' | sort -u |
nl -s '=' | sed 's/^ */var/')
echo $var20 $var80 $var200
산출:
asterisk document precedes
청소하려면 다음을 수행하십시오.
exit # forget all those vars
노트:
입력 데이터에 대한 어느 정도 절대적인 확실성둔한, 쉘이 실수로 명령으로 해석할 수 있는 위험한 내용은 포함되어 있지 않습니다. 그렇다면 완료 할당을 안전하게 사용할 수 없으며
=
더 합리적인 것을 사용해야 합니다printf -v var1 foobar
.이
man bash
예는 질문에서 요구하는 것보다 더 복잡합니다. 가장 중요한 것은 스트림에 번호와 접두사를nl
추가 하고 실행하여 문자열을 변수에 할당하는 것입니다.=
sed
var
.