2017-10-03 2 views
0

매우 큰 텍스트 파일에서 텍스트의 일부분을 제거해야합니다. 텍스트 파일은 같은 것입니다 :txt 파일에서 텍스트의 일부를 제거하십시오.

내가하는 "잠금 테이블"에서 모든 콘텐츠를 제거하는 스크립트 (Windows 또는 UNIX)을 만들 필요가
Abcdefghijk 
LOCK TABLES `core_log` WRITE; <---- 
(DATA - over 1 Gb of text data) 
UNLOCK TABLES; <---- 
lmnopqrstuvxyz 

"테이블 잠금 해제를;" 나머지 파일은 보존합니다. 스크립트를 실행 한 후에 내가 가지고 있어야합니다

Abcdefghijk 
lmnopqrstuvxyz 

추출 된 데이터를 다른 파일에 저장할 수 있거나 동일한 파일을 덮어 쓸 수 있습니다. 도움 주셔서 감사합니다.

+0

당신은 잠금 테이블 '과 같은 의미 * UNLOCK. 테이블; \ s *'와's' 한정자? – ctwheels

+0

안녕하세요. 이 사이트는 코드 작성 서비스가 아니며 완벽한 솔루션을 제공하기위한 것이 아닙니다. 사용자는 특정 프로그래밍 문제를 해결하는 데 도움이되도록 노력과 코드를 제시해야합니다. 벌써 시도해 봤니? 다음을 읽어보십시오. https://stackoverflow.com/help/asking –

답변

2

나오지 GNU으로 :

sed -i '/^LOCK TABLES/,/^UNLOCK TABLES/d' file 

출력은 파일에 :

 
Abcdefghijk 
lmnopqrstuvxyz 
+0

왜 GNU인가? 내가 잘못 본 것이 아니라면, 당신의 표현은 POSIX와 호환된다. – randomir

+0

@randomir : 옵션'-i'는 모든 sed에서 같은 방식으로 처리되지 않습니다. – Cyrus

+1

그래,'-i'에 대해서는 잘 모르겠지만 정규 표현식 주소 범위 선택은 어디에서나 작동해야한다. – randomir

2

이 가장 잘 awk로 수행됩니다

$ awk '/^LOCK TABLE/{f=1} /^UNLOCK TABLE/{f=0} f' file 
관련 문제