명령줄에서 vim을 사용하여 파일 중간에 텍스트를 추가하려면 어떻게 해야 하나요?

명령줄에서 vim을 사용하여 파일 중간에 텍스트를 추가하려면 어떻게 해야 하나요?

다음 줄을 따라 명령을 작성하려고 합니다.

vim -c "XXXXXX" myFile

"XXXXX" 대신 vim에 몇 가지 명령을 제공하여 파일의 임의 지점에 텍스트를 추가하고 싶습니다. 두 가지 방법 모두 정확한 줄 번호를 지정하고, 다른 시나리오에서는 특정 줄을 검색한 다음 삽입하는 방식입니다. 위의 줄.

내가 하려는 것은 스크립트 내의 코드 블록이나 함수에 줄을 추가할 수 있는 일종의 영리한 "추가"입니다. 궁극적으로 나는 아마도 십여 개의 시스템 파일을 변경하는 설정 스크립트를 만드는 것을 목표로 하고 있습니다.

이상적으로는 하나의 -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행에 문자열 "everyday"를 추가하려면:

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

" all"을 사용하여 모든 줄에 "hi" 문자열을 모두 추가하려면 다음을 수행하세요.

vim -c "1,$ s/\(hi\)/\1 all/g" -c "wq" file.txt

대체에 대한 자세한 내용은 다음을 참조하세요.

vim -c "help substitute"

관련 정보