sed "s/[a-z]/$1/g" <old.txt>new.txt
echo "done"
이는 소문자만 주어진 첫 번째 인수로 대체합니다. 대문자를 제외한 모든 것을 바꾸고 싶습니다.
답변1
sed "s/[^[:upper:]]/$1/g"
해당 로케일 에서 대문자로 간주되지 않는 모든 문자를 다음 $1
으로 바꿉니다.$1
&
유효한 문자가 아닌 바이트는 대체되지 않습니다. 또한 결합 문자를 행복하게 변환합니다. 예를 들어 은 É
(는) 대문자입니다. U+00C9 문자로 쓰면 그대로 유지되지만, E
결합급 문자(U+0301)가 뒤에 오면 으로 변경됩니다 E$1
.