우리의 입력은 다음과 같습니다
2012-04-17 [GBPGBP]
2012-04-13 [GBP GBP]
2012-04-13 [GBP]
2012-04-11 [GBPGBP]
2012-04-11 [GBP GBP]
2012-04-10 [GBPGBP]
2012-04-06 [GBP GBP GBP]
2012-04-17 [GBPGBP]
2012-04-13 [GBP CDN]
2012-04-13 [GBP]
2012-04-11 [GBPCDN]
2012-04-11 [GBP DL DL]
2012-04-10 [PSGBP]
2012-04-06 [PS PS]
우리는 이와 같은 출력을 얻고 싶습니다
2012-04-17 [GBP]
2012-04-13 [GBP]
2012-04-13 [GBP]
2012-04-11 [GBP]
2012-04-11 [GBP]
2012-04-10 [GBP]
2012-04-06 [GBP]
2012-04-17 [GBP]
2012-04-13 [GBP CDN]
2012-04-13 [GBP]
2012-04-11 [GBPCDN]
2012-04-11 [GBP DL]
2012-04-10 [PSGBP]
2012-04-06 [PS]
기본적으로 대괄호 안의 중복 문자열을 제거하십시오. 어떤 제안이 있으십니까?
답변1
sed -e ': a' -e 's/\(\[[^][]*\)\([A-Z][A-Z][A-Z]*\)\([^][]*\)\2/\1\2\3/' -e 't a'
: a
스크립트 시작 부분에 태그를 설정합니다.s/\(wibble\)\(foo\)\(bar\)\2/\1\2\3/
wibblefoobarfoo를 wibblefoobar로 교체하세요.[A-Z][A-Z][A-Z]*
두 개 이상의 문자 일치t a
a
이전s
명령이 대체된 경우 레이블로 다시 돌아갑니다.