'IT/shell 위 댄스'에 해당되는 글 13건

sed

IT/shell 위 댄스 2008. 2. 27. 18:55

[ 사용법 ]

  sed는 stream editor의 약어이며 문자를 스트림으로 나타나는 입력을 수정하거나 편집하는데 사용되는 툴입니다.
  유닉스에서 제공하는 다른 편집기와의 차이점은 원본 파일을 변경시키지 않고
  명령이 실행 되는 필터 기능을 가지고 있는 것입니다.
  그래서 변경된 내용을 보존하기 위해서는 적절한 조치가 필요합니다.


   1)   "sed" 명령어 실행 형식
  sed [-n][-e edit_command][-f command_file][ input_data_files ..]

  옵션:
  -n     결과행의 출력을 하지 않는다
  -e     편집할 명령을 기술한다. 각각의 편집 명령마다 이 옵션을 붙인다
  -f     편집할 명령을 파일로 작성한 뒤 파일에서 읽어서 명령을 실행한다
   input_data_file     입력을 지정하지 않으면 표준입력으로부터 입력을 읽어 들인다.
  사용 형식 예제:
  $ sed -e 'sed_command' -e 'sed_command' .... filenames
  $ sed -f sed_script_file filenames
  $ cat datafile
    Hello this is kim.
    I'm so happy to meet you.
    Test sample
    sample program
    Java programming

   2) 라인 선택 출력과 파일로 출력
  라인을 선택하여 출력할때는 -n 옵션과 sed명령중 p 명령을 이용하여 구현할 수 있다.
  $ sed -n '1,3p' datafile <-- 1번-3번라인까지 출력한다.
    Hello this is kim.
    I'm so happy to meet you.
    Test sample
  $ sed -n '/^s/p' datafile
    sample program : 라인의 시작이 's'인 라인을 출력
  $ sed '/^s/p' datafile
    Hello this is kim.
    I'm so happy to meet you.
    Test sample
    sample program
    Java programming
  $ sed -e '/^sample/w sam_file' datafile
  $ cat sam_file
    sample program

   3) 삭제, 추가, 삽입, 치환
  삭제예:
  $ sed '1,3d 'datafile
    sample program
    Java programming
  $ sed '/^sample/,/^Java/d' datafile : 라인중 sample로 시작하는 라인 부터 Java로 시작하는 라인 까지 삭제
    Hello this is kim.        
    I'm so happy to meet you.
    Test sample
  추가예:
  $ cat file1         : 각 라인의 아래에 '=====' 라인이 추가된다
    a\
    =====
    $ sed -f file1 datafile
    Hello this is kim.
    =====
    I'm so happy to meet you.
    =====
    Test sample
    =====
    sample program
    =====
    Java programming
    =====
    삽입예:             : 각 라인 위에 '***' 라인이 추가된다
  $ cat file2
    i\
    ***
    $ sed -f sed_script_file filenames
    ***
    Hello this is kim.
    ***
    I'm so happy to meet you.
    ***
    Test sample
    ***
    sample program
    ***
    Java programming
    치환예:
    $ sed -n '1,3s/t/T/gp' datafile         :변경된 라인만 출력
      Hello This is kim.
      I'm so happy To meet you.
      TesT sample
    $ sed '1,3s/t/T/g' datafile             :모든라인을 모두 출력
      Hello This is kim.
      I'm so happy To meet you.
      TesT sample sample program
      Java programming
    $ sed -n '1,3s/t/T/gw sam_file2' datafile     : 변경된 라인만 sam_file2 파일에 저장 한다
    $ cat sam_file2
      Hello this is kim.
      I'm so happy To meet you.
      TesT sample
    $ sed 's/\/export\/home/\home3/g']
      '/' 문자는 '\'문자를 사용하여 표시한다.
      /export/home is user01's base directory <-- 입력라인
      /home3 is user01's base directory <- 출력라인

   "); // :script -->

'IT > shell 위 댄스' 카테고리의 다른 글

awk  (0) 2008.02.27
date 매뉴얼  (0) 2008.02.27
쉘로 작성한 ftp 활용  (0) 2008.02.27
string 추출  (0) 2008.02.27
thumbnail 생성  (0) 2008.02.27
블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,

string 추출

IT/shell 위 댄스 2008. 2. 27. 18:54
[ 확장자 추출 ]
#!/bin/sh

DIR="/test/"
A=`ls $DIR`

for i in `echo "$A"`
do
echo ${i##*.}
done

exit 0

--------------------[Result]---------------------
png
gif
jpg
bmp
gif
png
png
bmp
 

[ 확장자를 제외한 path 추출 ]
#!/bin/sh

CURRENT_DIR=`pwd`
## CURRENT_DIR = /home/BLOG/DB_BRIDGE.tar
DB_BRIDGE_HOME=${CURRENT_DIR%.*}
echo $DB_BRIDGE_HOME

exit 0

----------------------[Result]---------------------------
/home/BLOG/DB_BRIDGE
 


[ 처음에 오는 문자를 찾아 앞부분 추출 ]
home> cat -n Test
#!/bin/sh

echo ${1%%.*}

home>sh Test aa.bb.cc.dd
aa
home>sh Test .aa.bb.cc.dd

home>
 

[ n번째에서 m번째 문자 추출 ]
#!/bin/sh

STRING="This is Test"
STR=${STRING:6:8}
echo $STR <-- "is"
STR=${STRING:6}
echo $STR <-- "is Test"
STR=${STRING::3}
echo $STR <-- "Thi"

'IT > shell 위 댄스' 카테고리의 다른 글

awk  (0) 2008.02.27
date 매뉴얼  (0) 2008.02.27
쉘로 작성한 ftp 활용  (0) 2008.02.27
sed  (0) 2008.02.27
thumbnail 생성  (0) 2008.02.27
블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,
#!/bin/sh

##
# $1 : outfile
# $2 : infile
# $3 : image Type (gif : 1, jpg, jpeg : 2)
# cjpeg 명령어의 smooth 옵션의 값은 낮을수록 용량이 커지나, 선명하게 보인다.
##

curDate=`/bin/date +%Y%m%d%H%M%S`;
curDir=\"./imgTemp\";

if [ \"$3\" == \"1\" ]; then
/usr/bin/giftopnm $2 > \"$curDir/news_$curDate.pnm\";
/usr/bin/pnmscale -xy 100 100 "$curDir/news_$curDate.pnm" | /usr/bin/cjpeg -progressive -optimize -smooth 1 -outfile $1;
else
/usr/bin/djpeg -pnm $2 > "$curDir/news_$curDate.pnm";
/usr/bin/pnmscale -xy 100 100 "$curDir/news_$curDate.pnm" | /usr/bin/cjpeg -progressive -optimize -smooth 1 -outfile $1;
fi

rm -rf $curDir/news_$curDate.pnm;

exit 0 

'IT > shell 위 댄스' 카테고리의 다른 글

awk  (0) 2008.02.27
date 매뉴얼  (0) 2008.02.27
쉘로 작성한 ftp 활용  (0) 2008.02.27
sed  (0) 2008.02.27
string 추출  (0) 2008.02.27
블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,