>> Read Reply from No. 23362 article  
RE: [질문]문서편집_300개_반복

등록 2001-03-09 22:18:00     조회 1
이름 무정한    

		: 제가 웹에서 특정한 문서를 통째로 퍼왔는데 그곳에는 이상한 제가 원치
: 않는 그러한 내용들이 맨 위에 몇줄 맨아래 몇줄이 있네요 그것을
: 스크립트를 사용해서 없애려 하는데...
:
: -------
: -----
: -------
: 내용
: 내용
: ---
: -----
: ----
:
: 대충 문서는 저런 식입니다. 위에 4줄과 밑에 3줄 정도를 없애려면 어떻게
: 해야 할런지요? while를 사용해서 한번에 다 돌리려 하는데 문제는
: 맨 앞에거와 맨 뒤에거 찾아 오는거는 있는데 그것을 없애는 것은
: 못보았네요 bash 쉘이나 perl를 이용해서 머리/꼬리 없애는 것좀 알려주세요
:
: --
: 메롱~
무식한 방법을 하나 소개합니다.
다음의 스크립트는 한개의 파일만을 처리하는 겁니다.
 이것을 여러번 돌리면 될겁니다.
우선 테스트를 위해 input이라는 데이터파일을 다음과 같이
만듭니다.
------------ start of input file ------------
dummy_1
dummy_2
dummy_3
dummy_4
-----------------------------------------------
real_data_1
real_data_2
real_data_3
real_data_4
real_data_5
-----------------------------------------------
tail_1
tail_2
tial_3
--------------- end of input file -------------
 그리고 이것을 입력으로 받을 스크립트를 다음과 같이 만듭니다.
스크립트의 파일명을 extract라고 하겠습니다.
--------------- start of extract --------------
#!/bin/csh
#########################################################
#
# extract 삭제할헤더라인수 삭제할테일라인수 대상파일
#
#########################################################
if($#argv != 3) then
        echo "usage: $argv[0] 삭제할헤더라인수 삭제할테일라인수 대상파일"
        exit 1;
endif
 if(-e $argv[3]) then
        set in=$argv[3]
        set imsi=$argv[3]_tmp
        set out=$argv[3]_out
else
        echo "file not found"
        exit 1;
endif
 set head_status=`echo $argv[1] | perl -pi -e "s/^[0-9]+/OK/g"`
if($head_status == "OK") then
        set head_line = $argv[1]
else
        echo "head line number illegal"
        exit 1;
endif
 set tail_status=`echo $argv[2] | perl -pi -e "s/^[0-9]+/OK/g"`
if($tail_status == "OK") then
        set tail_line=$argv[2]
else
        echo "tail line number illegal"
        exit 1
endif
 head -$head_line $in > $imsi
set total_line = `wc -l $in | perl -pi -e "s/^[ ]+//s" | cut -d ' ' -f 1`
set real_line = `expr $total_line - $head_line - $tail_line`
repeat $real_line echo "" >> $imsi
tail -$tail_line $in >> $imsi
comm -3 $in $imsi | perl -pi -e "s/^	//g" > $out
rm $imsi
--------------- end of extract ----------------
 위의 파일을 extract로 저장한 후 실행가능 모드로 만듭니다.
그리고 다음과 같이 실행해봅니다.
shell_prompt> ./extract 4 3 input
 그러면 input_out이라는 이름의 결과파일이 생성됩니다.
 결과 파일의 내용은 다음과 같습니다.
-----------------------------------------------
real_data_1
real_data_2
real_data_3
real_data_4
real_data_5
-----------------------------------------------
 갱장히 무식한 방법입니다. 죄송스럽습니다.
 --
외로워라 이네몸은 뉘와함께 놀아날꼬.
이름
암호


>> 관련글
23362 [질문]문서편집_300개_반복  marzok  2001.03.09  ....
  답장 RE: [질문]문서편집_300개_반복  무정한  2001.03.09  ....
Register [ localhost 목록보기 윗글 아랫글
글쓰기
답장쓰기 수정 삭제
정규표현식 [ 상세 검색 ]
페이지로딩: [ 3.53 초 ] 작업시간: [ 0.15 초 ]

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved
[TOP]

적수네 동네
+
| 적수네 동네
| 공부방
| 리눅스 잡지 서고
| LSN 소스
| 링크 모음
+---+
게시판
+
| 떠들어보세!
| 질문과 답변
| 새소식과 정보
| 1원짜리 팁?
| 대화방
+---+
칼럼?
+
| 세하 훔쳐보기
| Welcome2nite
| 혜진의 염장판
+---+
리눅스 상표권
+
| 반대 서명란
| 토론 게시판
+---+
GNU
+
| GNU 선언문
| GNU GPL
| GNU 미러 목록
+---+
프로젝트?
+
| 리눅스카운터
| RC5DES
| 실질헌법 제작
+---+
커널 소식
+
| 안정 버젼: 2.4.14
+---+
테마 선택
+
LSN 방송국?
+
| OFF AIR
+---+
회원
+
| 로그인
+---+
[ 적수네 동네 ] [ 리눅스 상표권 독점 반대 ] [ 한글 리눅스 문서 프로젝트 ] [ KrLine ] [ 사랑넷 ] [ Valid HTML 4.0! ] [ SlashDot ] [ Freshmeat ]
Copyleft (C) 1998-2001 Byeong-Chan Kim . License
TIME: 1789606468
System by WYZsoft, HDD by I.O.Linux, Mizi Research, Embryo, WOWLINUX, Domain by SarangNet, Network by KrLine.