>> Edit article
이름
제목
패스워드
: 제가 웹에서 특정한 문서를 통째로 퍼왔는데 그곳에는 이상한 제가 원치 : 않는 그러한 내용들이 맨 위에 몇줄 맨아래 몇줄이 있네요 그것을 : 스크립트를 사용해서 없애려 하는데... : : ------- : ----- : ------- : 내용 : 내용 : --- : ----- : ---- : : 대충 문서는 저런 식입니다. 위에 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 ----------------------------------------------- 갱장히 무식한 방법입니다. 죄송스럽습니다. -- 외로워라 이네몸은 뉘와함께 놀아날꼬.
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved