![명령줄에서 vim을 사용하여 파일 중간에 텍스트를 추가하는 방법은 무엇입니까?](https://linux55.com/image/57624/%EB%AA%85%EB%A0%B9%EC%A4%84%EC%97%90%EC%84%9C%20vim%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%20%EC%A4%91%EA%B0%84%EC%97%90%20%ED%85%8D%EC%8A%A4%ED%8A%B8%EB%A5%BC%20%EC%B6%94%EA%B0%80%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
다음과 같은 명령을 작성하려고 합니다.
vim -c "XXXXXX" myFile
"XXXXX" 이외의 몇 가지 명령을 vim에 제공하고 싶습니다. 정확한 줄 번호를 지정하거나 다른 경우에는 특정 줄을 검색한 다음 위 줄.
내가 원하는 것은 코드 블록이나 스크립트 내의 함수에 줄을 추가할 수 있는 깔끔한 "추가"입니다. 궁극적으로 내 목표는 약 12개의 시스템 파일을 변경하는 설치 스크립트를 만드는 것입니다.
이상적으로는 -c 플래그만 포함하고 이상적으로는 일반 모드 명령을 이해할 수 있는 사람이 읽을 수 있어야 합니다. 내 머리 속 초기 생각은 "ggjjjiInsertingOnLine4:wq"
일반 모드로 들어갈 수 있게 되면 이 작업을 수행하는 것이었습니다.
답변1
명령줄 범위를 사용하여 편집해야 하는 특정 줄을 선택할 수 있습니다. 그런 다음 대체 모드를 사용하여 편집(추가)을 수행할 수 있습니다.
예를 들어, 3행의 시작 부분에 "hi"라는 텍스트를 추가하려면 다음을 수행하십시오.
vim -c "3 s/^/hi/" -c "wq" file.txt
3행 끝에 "hi"라는 텍스트를 추가하려면 다음을 수행하세요.
vim -c "3 s/$/hi/" -c "wq" file.txt
더 많은 옵션과 설명을 찾으려면:
vim -c "help cmdline-range"
더 많은 예시
검색 문자열 "hi"를 찾아 3행에 "everyone" 문자열을 추가하려면 다음을 수행하세요.
vim -c "3 s/\(hi\)/\1 everyone/" -c "wq" file.txt
검색 문자열 "hi"를 찾고 라인 3에 "say" 문자열을 추가하려면 다음을 수행하십시오.
vim -c "3 s/\(hi\)/say \1/" -c "wq" file.txt
줄 번호를 알 수 없는 경우 각 줄에 "hi"라는 문자열이 처음 나타나는 부분을 추가하고 "all"을 추가합니다.
vim -c "1,$ s/\(hi\)/\1 all/" -c "wq" file.txt
각 줄에 "hi" 문자열을 모두 추가하려면 "all"을 사용합니다.
vim -c "1,$ s/\(hi\)/\1 all/g" -c "wq" file.txt
교체에 대한 추가 정보:
vim -c "help substitute"