テキストファイル内の特定の長さのすべての文字列を見つけ、各文字列を新しい変数として保存できるコードがあるかどうか疑問に思います。
たとえば、テキストファイルには5つの文字列があります。そのうちの2つは3文字の長さです。アイデアは、8文字の長さの文字列をすべて解析し、順番に変数に入れることです(たとえばvar1
、、、、var2
)var3
。
どうすればいいですか?
ありがとうございます!
(疑問に思う人のために、秘密鍵を含むビットコインウォレットが複数含まれている古いファイルを自分のコンピュータで見つけ、残高を確認するためにすべて変数として保存しようとしました。)ビット
コインアドレスに関するこの記事を確認してください。どの文字が含まれているかを確認するには、BitcoinアドレスのWebサイトにアクセスしてください。ここ
答え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
.