2014-04-24 1 views
1

sed -e 's/(match other stuff too)[aA]/\1b/g'a의 대소 문자와 일치하는 대체 b으로 바꾸려면 어떻게해야합니까? 이 경우 하나의 문자 만 대체되지만 전체 검색은 대소 문자를 구별 할 수 있습니다 (나는 이것을 s///I과 별도로 처리 할 수 ​​있습니다).대/소문자가 일치하지 않지만 대소 문자가 일치 함

+0

몇 가지 제안 사항은 여기에서 perl을 사용하십시오. http://stackoverflow.com/questions/6280388/perl-regex-replace-in-same-case – user1717259

+1

대체 할 문자는 실제로 단 한 문자입니까? 그렇다면 'sed -e's/a/b/g '-e's/A/B/g ''가 그 트릭을 할 것입니다. – iruvar

+1

@ 1_CR 음, 실제로 한 문자 만 사용하는 경우 다음과 같이 처리 할 수 ​​있습니다.'sed 'y/aA/bB /'' – FloHimself

답변

1

당신 (GNU이 나오지도)에 대한이 작동하지 않을 수 있습니다 : 모든 조회가 교체 될 때까지

sed -rn 's/$/\nabAB/;:a;s/(match other stuff too)([aA])(.*\n.*\2(.).*)/\1\4\3/;ta;P' file 

는 라인과 루프의 마지막에 조회 테이블을 추가합니다.

관련 문제