![대/소문자를 어떻게 변경합니까(아래에서 위로 또는 그 반대로)? 동시에 [반복]](https://linux55.com/image/122270/%EB%8C%80%2F%EC%86%8C%EB%AC%B8%EC%9E%90%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EB%B3%80%EA%B2%BD%ED%95%A9%EB%8B%88%EA%B9%8C(%EC%95%84%EB%9E%98%EC%97%90%EC%84%9C%20%EC%9C%84%EB%A1%9C%20%EB%98%90%EB%8A%94%20%EA%B7%B8%20%EB%B0%98%EB%8C%80%EB%A1%9C)%3F%20%EB%8F%99%EC%8B%9C%EC%97%90%20%5B%EB%B0%98%EB%B3%B5%5D.png)
입력하다
> a='Vikas'
> echo $a
Vikas
내가 필요한 출력은
echo $a | <some command>
vIKAS
답변1
$ echo Vikas | LC_ALL=C tr a-zA-Z A-Za-z
vIKAS
이 유틸리티는 tr
문자를 변환합니다. 문자 세트를 나타내는 두 개의 인수를 사용하여 표준 입력을 표준 출력에 복사하고 첫 번째 세트에서 찾은 각 문자를 두 번째 세트의 해당 문자로 바꿉니다. 이 응용 프로그램에서는 소문자를 대문자로 바꾸거나 그 반대로 바꿉니다. 보다tr(1)의 매뉴얼 페이지자세한 내용과 수행할 수 있는 기타 처리 방법에 대해 알아보세요 tr
.
답변2
다음과 같이 [:upper:] 및 [:lower:] 옵션과 함께 tr 명령을 사용할 수 있습니다.
echo "aBcDeF" |tr '[:upper:][:lower:]' '[:lower:][:upper:]'
AbCdEf
다음과 같이 sed 명령("스트림 편집기"를 나타냄)을 사용할 수도 있습니다.
echo "abcd ABCD" |sed 'y/abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/'
sed는 유연성이 더 뛰어나므로 모든 문자 매핑을 정의할 수 있습니다. 예를 들어 다음 명령을 사용하여 숫자를 해커 문자로 변환할 수 있습니다.
echo "52065218802365" |sed 'y/0123456789/OIZEhSGLBP/'
SZOGSZIBBOZEGS