倫理的侵入テストに使用する潜在的なパスワードを含む巨大なテキストファイルがあります。与えられたパスワードの最初の文字を大文字として使用して、より多くのパスワードバリアントを取得したいと思います。以前使ったことがあります。
sed -e "s/\b\(.\)/\u\1/g"
そして
sed 's/\b\([[:alpha:]]\)\([[:alpha:]]*\)\b/\u\1\L\2/g'
最初の文字を大文字で表示するか(最初の例)、最初の文字を大文字にし、残りの文字を小文字にします(2番目の例)。しかし、今新しい問題が発生しました。私のソースファイルは次のとおりです。
password
p@ssword
123password
!!123password
!@#000password
私は出力が次のようになります:
Password
P@ssword
123Password
!!123Password
!@#000Ppassword
sed
tr
または、awk
最初の文字に焦点を当てて、それが数字または記号であることを確認し、単語を変更せずに続行するのではなく、最初のaz文字を見つけて大文字で表示するのに十分賢くする必要があります。
これを行う方法はありますか?
ベストアンサー1
sed
大丈夫です。省略すると、デフォルトでは最初の一致のみが置き換えられるためです。Gグローバル修飾子:
sed 's/\([[:alpha:]]\)/\U\1/'
ただし、通常、これは手動ではなくクラッキングツールが自動的に実行するようにします。ルール有効です。