첫 번째 문자열 과 첫 번째 문자열 >
사이의 첫 번째 문자열을 _
첫 번째 문자열 뒤의 두 번째 위치로 이동하고 싶습니다._
이를 변경하는 방법은 다음과 같습니다.
>10E13JB10_Vacares_8__a1
blablabla
>10E13JB10_Vacares_8__a2
blablabla
>10E2JB10_Mulhacen_13__a1
blablabla
다음을 입력하세요:
>Vacares_10E13JB10_8__a1
blablabla
>Vacares_10E13JB10_8__a2
blablabla
>Mulhacen_10E2JB10_13__a1
blablabla
답변1
sed -e 's/^>\([^_]*\)_\([^_]*\)/>\2_\1/' -i file
로 끝나는 처음 두 문자열을 찾아 _
교체 순서를 반대로 바꿉니다. 처음 두 문자열과만 일치하므로 줄의 나머지 부분은 수정하거나 삭제하지 않습니다.
s/aaa/bbb/
- 대체를 수행하여 다음 항목을 모두 바꿉니다aaa
.bbb
^
- 줄의 시작\(...\)
-캡처 그룹, 일치하는 문자열을 다음과 같이 저장합니다\1
.\2
[^_]*
-ㅏ캐릭터 클래스다음을 제외한 모든 문자와 일치합니다._