特定の順序のすべての単語をリストの先頭に移動

特定の順序のすべての単語をリストの先頭に移動

次のパスワードのリストがあります。

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与えられた正規表現に一致する各行で特定のアクションを実行するコマンドがあります。私はmoveコマンドを使用して、「行0」の後に一致する行を配置しました。つまり、ファイルの先頭に移動しました。


ところで、あなたは何をしていますか?パスワードの種類を手動で編集しますか?

コードゴルフではどうですか?

printf %s\\n {a,e,i,o,u}{b..z}{a,e,i,o,u}{b..z}{00..99}|grep -ve^.{,..}\[eiou]

ここでは、78バイトのみを使用して、あなたが興味を持っているすべての組み合わせを作成しました! :血

おすすめ記事