
예를 들어 vi 편집기에서 today라는 단어가 8줄로 구성된 파일이 생성되었는데, 한 번의 명령으로 어떻게 4줄을 어제라는 단어로 바꿀 수 있는지 궁금했습니다.
답변1
:
파일의 내용에 작용하는 대부분의 ex 명령(즉, (콜론)과 명령 이름을 눌러 호출되는 명령 )은 명령 앞에 범위를 지정할 수 있습니다. 이 범위는 명령의 영향을 받는 행을 지정합니다. 범위의 일반적인 형태는 쉼표로 구분된 두 개의 숫자이며, 명령은 첫 번째 숫자부터 두 번째 숫자까지의 모든 행에 적용됩니다. 예를 들어
1,4s/today/yesterday/g
파일의 처음 네 줄에 있는 today
by를 모두 바꿉니다 .yesterday
현재 줄을 기준으로 숫자 앞에 기호를 넣을 수 있습니다. 예를 들어
-1,+1s/today/yesterday/g
이전 줄, 현재 줄, 다음 줄에 대해 교체를 수행합니다. 쉼표를 포함하고 숫자 중 하나를 빼면 현재 줄을 의미합니다. 예를 들어
,+1s/today/yesterday/g
현재 줄과 다음 줄에서 교체를 수행합니다. $
숫자 대신에 파일의 마지막 줄을 의미하는 데 사용할 수도 있습니다 . 쉼표를 생략하고 하나의 숫자만 지정하면 명령은 이 줄에서만 작동합니다.
+1s/today/yesterday/g
다음 줄에서만 교체를 수행합니다.
답변2
다음 명령을 사용할 수 있습니다.
:n,m s/today/yesterday/
즉, n행에서 m행까지 'today'라는 단어를 'yesterday'로 바꿉니다.
답변3
이 시도 :
vi 편집기에서 명령 모드로 이동하여 아래 명령을 시도해 보십시오.
:%s/today/yesterday/g
g - 오늘을 전역적으로 어제로 바꿉니다.