2011-01-30 2 views
0

Discount 년대 파일의 처음부터 주석을 제거 configure.sh 스크립트는 config.h 파일의 시작 부분에 약간의 동적 의견을 생성 자식 프로젝트 내부 할인을 삽입 할 때 몇 가지 쓸모없는 패치를 만드는검색 및

/* 
* configuration for markdown, generated Fri 28 Jan 2011 16:13:46 EST 
* by [email protected] 
*/ 
#ifndef __AC_MARKDOWN_D 
#define __AC_MARKDOWN_D 1 

[...] 

, 그래서 커밋하기 전에 제거합니다. configure.sh에서 출력을 자동화하여 프로젝트 내부의 할인을 더 빨리 업그레이드 할 수 있지만 awk/sed에 정통하지는 않습니다.

tail -n +5 config.h > ../discount-config/config.h 

하지만 뭔가 더 미래 지향적으로이를 대체하고 싶은, 그래서 할인 이후 버전보다/더 적은이있는 경우이 파일을 난도질하지 않을 것이다 : 내 스크립트에이 라인을 가지고 4 줄의 주석.

+0

방금 ​​수정할 수 없습니다'configure.sh'는 코멘트를 작성하지 않으려면? – SilentGhost

+1

왜 생성 된 파일을 저장소에 저장 하시겠습니까? 일반적으로 프로젝트를 체크 아웃 한 후 파일을 생성하기 위해 실행할 수있는 스크립트를 저장하는 것이 좋습니다. – ssmir

+0

@SilentGhost'configure.sh'는 할인의 git 저장소의 일부입니다. 수정하고 싶지 않습니다. – Tim

답변

1

sed을 사용하면 어떨까요? 당신이 최고 주석이 항상 파일의 첫 번째 줄에서 시작한다고 가정 할 경우

예를 들어, :

$ cat test.h 
/* 
* configuration for markdown, generated Fri 28 Jan 2011 16:13:46 EST 
* by [email protected] 
*/ 
#ifndef __AC_MARKDOWN_D 
#define __AC_MARKDOWN_D 1 

/* 
* Test 
*/ 

int x; 
$ sed '1,/^ *\*\/ *$/ { d; }' test.h 
#ifndef __AC_MARKDOWN_D 
#define __AC_MARKDOWN_D 1 

/* 
* Test 
*/ 

int x; 
+0

고마워! 나는 그와 같은 우아한 해결책이있을 것이라고 생각했지만, 글을 쓰려면 sed에 대해 충분히 알지 못했습니다. – Tim