벨기에의 모든 도시에 관한 파일이 있습니다. 이들 도시 중 일부에는 행정 구역이 있습니다.
Lier;stad;Antwerpen;49,70;33930;Lier;Koningshooikt
Knokke-Heist;gem.;WestVlaanderen;56,44;33825;Knokke;Westkapelle;Heist;Ramskapelle
, and space
하지만 행정 구역을 대신 사용하고 싶습니다 ;
. 그래서 나는 이것을 얻고 싶습니다 :
Lier;stad;Antwerpen;49,70;33930;Lier, Koningshooikt
Knokke-Heist;gem.;West-Vlaanderen;56,44;33825;Knokke, Westkapelle, Heist, Ramskapelle
나는 vi
그것을 정기적으로 사용하지만 이 대체품은 나에게 어렵습니다.
답변1
다음을 수행할 수 있습니다(GNU 가정 sed
).
:%!sed 's/;/, /6g'
아래에서 6번째 것을 ;
로 교체합니다 ,
.
vim
LookBehind 연산자를 사용하십시오 .
:%s/\v((;.*){5})@<=;/, /g
(즉, ;
처음 5초 이상을 교체하십시오 ;
.)
답변2
또 다른 방법 vim
:
:g/^/call feedkeys("nnnnna") | s/;/, /gc
이 feedkeys()
함수는 nnnnna
키보드에서 문자열을 입력하는 것과 마찬가지로 문자열에 대해 작동하며, 바꾸기 플래그는 s
사용자 에게 확인 후 모든 항목을 바꾸도록 지시합니다.gc
vim
여기서는 처음 5번의 발생을 무시 nnnnn
하고 a
나머지는 모두 확인합니다.
g/^/
명령이 모든 행에 적용되도록 합니다 .