2011-01-08 3 views

답변

0
awk ' 
    BEGIN     { noprint = 1; cue = ARGV[1]; ARGV[1] = ""} 
    (!noprint)    { print } 
    (noprint && $0 == cue) { noprint = 0 } 
' house textfile 
+0

이것은 나를 위해 작동하지 않습니다, 나는 얻을 전혀 출력이 없습니다. –

+0

이봐, -1은 뭐니? 이것은 데비안 5.0의'gawk' 3.1.5에서 작동합니다. –

+0

예 : http://cl.ly/0m2g1R2x2X430K123P14 –

0

당신은 물론 떠들썩한 파티 스크립트에 통합 할 수있는 펄 한 줄, 쉽게이 작업을 수행 할 수 있습니다.

$ perl -ne 'print if $ok; $ok=1 if /^house$/' sample.txt 
cat 
dog 
etc 
6
sed -n '0,/^house$/d;p' input.txt 
+0

이 파일은 나를 위해 전체 파일을 출력합니다. (OS X 10.6.6에서 sed 실행하기) –

+0

@Simon Whitaker - ill, 질문 다시 읽기 – ajreal

+2

GNU'sed'는 주소로서 0을 지원하지만 다른 것들은 지원하지 않습니다. '0,/regex /'와'1,/regex /'의 차이점은 정규 표현식이 첫 번째 줄과 일치하면 0 형식이 범위를 끝내지 만 1 형식은 다음 정규 표현식 일치까지 기다릴 것이라는 것입니다 범위를 끝내십시오. –

0

은 또한 작업의 이런 종류의 유닉스 텍스트 편집기 에디션을 사용할 수 있습니다. ed는 전체 파일을 메모리로 읽어 들이고 이전에 백업하지 않고 현재 위치에서 파일을 편집합니다. 참조하시기 바랍니다 에디션에 대한 자세한 내용은

# prints result to stdout 
printf '%s\n' H ',g/^house$/1,/^house$/d' ',p' | ed -s file 
printf '%s\n' H ',g/^house$/1,//d' ',p' | ed -s file # short version 

# edits file in-place 
printf '%s\n' H ',g/^house$/1,/^house$/d' wq | ed -s file 

:

"스크립트에서 에드 텍스트 편집기로 편집 파일을"

http://wiki.bash-hackers.org/howto/edit-ed