SED, TR 또는 AWK를 사용하여 첫 글자를 대문자로 사용하세요.

SED, TR 또는 AWK를 사용하여 첫 글자를 대문자로 사용하세요.

윤리적 침투 테스트에 사용하는 잠재적인 비밀번호가 담긴 거대한 텍스트 파일이 있습니다. 주어진 비밀번호의 첫 글자를 대문자로 사용하여 더 많은 비밀번호 변형을 얻고 싶습니다. 예전에 사용해본 적이 있어요

sed -e "s/\b\(.\)/\u\1/g"

그리고

sed 's/\b\([[:alpha:]]\)\([[:alpha:]]*\)\b/\u\1\L\2/g'

첫 글자를 대문자로 표시하거나(첫 번째 예) 첫 글자를 대문자로 만들고 나머지 글자는 소문자로 만듭니다(두 번째 예). 하지만 이제 새로운 문제가 생겼습니다. 내 소스 파일은 다음과 같습니다.

password
p@ssword
123password
!!123password
!@#000password

나는 출력을 다음과 같이 원한다:

Password
P@ssword
123Password
!!123Password
!@#000Ppassword

sedtr또는 awk첫 번째 문자에 집중하여 그것이 숫자나 기호인지 확인하고 단어를 수정하지 않고 계속 진행하는 대신 첫 번째 a-z 문자를 찾아 대문자로 표시할 만큼 똑똑해야 합니다 .

이를 수행할 수 있는 방법이 있습니까?

답변1

sed괜찮습니다. 생략하면 기본적으로 첫 번째 일치 항목만 교체하기 때문입니다.G전역 수정자:

sed 's/\([[:alpha:]]\)/\U\1/'

하지만 일반적으로 이 작업은 수동으로 수행하지 않고 크래킹 도구가 자동으로 수행하도록 합니다.규칙활성화되었습니다.

관련 정보