![텍스트 블록의 각 줄 앞에 #을 추가하는 방법은 무엇입니까?](https://linux55.com/image/87720/%ED%85%8D%EC%8A%A4%ED%8A%B8%20%EB%B8%94%EB%A1%9D%EC%9D%98%20%EA%B0%81%20%EC%A4%84%20%EC%95%9E%EC%97%90%20%23%EC%9D%84%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)
이것은 내 PHP Myadmin 구성 파일의 일부입니다.
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
<Directory /usr/share/phpMyAdmin/>
AddDefaultCharset UTF-8
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
Require ip 127.0.0.1
Require ip ::1
</RequireAny>
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Deny,Allow
Deny from All
Allow from 127.0.0.1
Allow from ::1
</IfModule>
</Directory>
<Directory /usr/share/phpMyAdmin/setup/>
<IfModule mod_authz_core.c>
# Apache 2.4
<RequireAny>
#
첫 번째 줄부터 시작하여 각 줄을 <Directory>
까지 추가 하고 싶습니다 </Directory>
. 어떻게 해야 합니까?
답변1
vim을 사용하여 이를 수행하는 방법은 여러 가지가 있습니다.
1 - 시각적 선택
시각적 선택에 대한 Mikhail Krutov의 의견에 대한 자세한 설명은 다음과 같습니다.
/Directory
첫 번째 일치 찾기- Shift+ v(시각적 모드)
/Directory>
모두 선택(찾을 때까지 선택Directory>
- 검색을 사용하는 대신 두 번 클릭하여 2개의 단락을 선택할 수도 있습니다
}
.
- 검색을 사용하는 대신 두 번 클릭하여 2개의 단락을 선택할 수도 있습니다
:'<,'>s/^/#/g
모든 "줄 첫 번째 문자"를 #으로 바꾸십시오.:'<,'>
:
Vim은 당신이 선택한 내용으로 무엇인가를 하고 싶어 한다는 것을 알기 때문에 당신이 입력할 때 자동 완성할 수 있습니다 .
2 - 시각적 블록 선택
DopeGhoti와 lgeorget은 다음과 같이 말했습니다.
- 시각적 블록을 선택하려면 Control+를 클릭하세요 .v
}
두 번 치다- 누르고
I#
클릭하세요Esc
3 - 매크로
또 다른 방법은 매크로를 사용하는 것입니다. 유일한 주의 사항은 매크로를 기록한 후 매크로를 몇 번이나 반복해야 하는지 알아야 한다는 것입니다( set nu
친구가 정신적으로 줄 수를 세는 데 도움을 줄 수 있습니다).
qq
- q라는 매크로 기록을 시작합니다.I#
- 줄의 시작 부분에 문자를 삽입합니다#
. Esc삽입 모드를 종료 하려면 클릭하세요.jq
한 줄을 누르고 녹음을 중지하세요 .17@q
이 매크로를 17번 실행을 누릅니다 .
답변2
Perl을 사용하면 다음과 같이 간단합니다.
perl -pe 'if ((/<Directory/ && !$done) ... /<\/Directory/) { $done = true; s/^/#/; }' < config_file
비결은 점 3개 연산자입니다( 점 2개 연산자는 및 가 같은 줄 <Directory>
에 있지 않은 한 작동합니다).</Directory>
/<Directory/ ... /<\/Directory/
이 두 정규식 사이의 모든 줄과 일치합니다./<Directory/ && !$done
$done = true;
with in a block ($done
처음에는 기본적으로 false)은<Directory>
첫 번째 블록만 일치하도록 보장합니다.-pe
$_
코드 블록을 실행한 후 표준 입력을 한 줄씩 읽어서 출력합니다.s/^/#/
prepend 와 일치하는 각 줄을 수정합니다#
.