次のパスワードのリストがあります。
aaaa00
aaaa01
aaaa02
...
zzzz97
zzzz98
zzzz99
このパターンを含むすべての単語をリスト(テキストファイル)の先頭に移動したいと思います。
コレクション-子音-コレクション-子音-ダブルX
どうすればいいですか?ありがとうございます。
ベストアンサー1
使用ex
:
vowel='[AaEeIiOoUu]'
cons='[BCDFGHJKLMNPQRSTVWXYZbcdfghjklmnpqrstvwxyz]'
printf '%s\n' "g/^$vowel$cons$vowel$cons[0-9][0-9]\$/m 0" x | ex file.txt
を使用する別の方法set ic
は次のとおりですset ignorecase
。
vow='[aeiou]'
cns="[$(printf %s {a..z} | tr -d "$vow")]"
printf '%s\n' 'set ignorecase' "g/^$vow$cns$vow$cns[0-9][0-9]\$/m 0" x | ex test.txt
これらの答えはPOSIX互換。各コマンドの中心には、g
与えられた正規表現に一致する各行で特定のアクションを実行するコマンドがあります。私はm
oveコマンドを使用して、「行0」の後に一致する行を配置しました。つまり、ファイルの先頭に移動しました。
ところで、あなたは何をしていますか?パスワードの種類を手動で編集しますか?
コードゴルフではどうですか?
printf %s\\n {a,e,i,o,u}{b..z}{a,e,i,o,u}{b..z}{00..99}|grep -ve^.{,..}\[eiou]
ここでは、78バイトのみを使用して、あなたが興味を持っているすべての組み合わせを作成しました! :血