Presentation is loading. Please wait.

Presentation is loading. Please wait.

grep -hnlvwi patten {filename}

Similar presentations


Presentation on theme: "grep -hnlvwi patten {filename}"— Presentation transcript:

1 grep -hnlvwi patten {filename}
4. 유틸리티 파일 여과(File filtering) grep -hnlvwi patten {filename} - h: 화일 이름을 명시하지 않는다. - n: 줄 번호 표시 - l: 화일 목록 표시 - v: pattern과 일치하지 않는 줄을 보여 준다. - w: 전체 단어로써 비교한다. - i: patten의 대소문자 무시

2 4. 유틸리티(계속) # vi grepfile well you know it's your bedtime,
so turn off the light, say all your prayers and then, oh you sleepy young heads dream of wonderful things, beautiful mermaids will swim through the sea, and you will be swimming there too. :wq! # grep the grepfile // # grep -wn the grepfile 2:so turn off the light, 5:beautiful mermaids will swim through the sea, # _

3 4. 유틸리티(계속) 화일 정렬(File sort)
ASCII값으로 비교하여 정렬한다.( 공백 < 대문자 < 소문자) sort -t -r {sortfield -bfMn} {filename} -t: 항목 분리자를 명시하기 위해서 사용 -r: 내림차순으로 정렬 -b: 줄의 앞에 있는 공백을 무시 -f: 대소문자 무시 -M: 월(Month) 순으로 정렬 -n: 숫자 순으로 정렬

4 4. 유틸리티(계속) # sort -r sortfile # vi sortfile jan start chapter 3 10th
Jan end chapter 7 27 Mar start chapter 7 27 may end chapter 7 17th :wq! # sort sortfile # sort -r sortfile jan start chapter 3 10th Mar srart chapter 7 27 Jan start chapter 1 30th may end chapter 7 17th Jan srart chapter 1 23th Jan end chapter 7 27

5 cmp -ls filename1 filename2
4. 유틸리티(계속) 화일 비교 cmp 두개의 파일사이에 서로 다른 첫번째 바이트를 찾아낸다. cmp -ls filename1 filename2 -l: 일치하지 않는 모든 바이트에 대한 옵셋과 값을 보여 준다. -s: 모든 출력을 금지

6 4. 유틸리티(계속) # vi lady1 lady of the night, I hold you close to me,
and all those loving words you say are right. # vi lady2 and everything you say to me is right. # cmp lady1 lady2 lady1와 lady2는 다름: 문자 19, 행 1 # _

7 4. 유틸리티(계속) diff 두 파일을 비교하고, 그 차이를 출력한다. diff -i filename1 filename2
출력형태 정보 첨가(addition) diff -i filename1 filename2 -i : 줄들의 대소문자 무시 Firststart a SecondStart, SecondStop > 둘째 파일에서 첫째파일로 첨가될 줄

8 4. 유틸리티(계속) 삭제(Deletions) 변경(Change) FirstStart, FirstStop d lineCount
< 첫째 파일에서 제거될 줄 FirstStart, FirstStop c SecondStart, SecondStop <첫째 파일에서 치환될 줄 ---- >치환을 위해 사용될 둘째 파일의 줄

9 4. 유틸리티(계속) # vi lady1 lady of the night, I hold you close to me,
and all those loving words you say are right. # vi lady2 and everything you say to me is right. # diff lady1 lady2 3c3 <and all those loving words you say are right. --- >and everything you say to me is right. # _

10 tar -cfrtuvx% [tarfilename] filelist
4. 유틸리티(계속) 파일 압축: tar tar -cfrtuvx% [tarfilename] filelist -c: tar 형식의 파일을 생성한다. -f: 디폴트 이름을 변경할 수 있게 한다. -v: 긴 출력 정보제공 -t: 목차 제공 -r: 무조건 리스트된 파일을 보관 파일에 덧붙인다. -u: 이미 보관된 파일보다 더 최근의 파일을 덧붙인다. -x: 명명된 파일을 추출해 준다.

11 4. 유틸리티(계속) # ls // 현 디렉토리 목록 표시 test1 test2 test3 test4
# tar -cvf tarfile // 현 디렉토리 압축 a ./ 0K a ./test1 0K a ./test2 0K a ./test3 0K a ./test4 0K tarfile test1 test2 test3 test4 # tar -tvf tarfile // tarfile의 리스트 출력 drwxr-xr-x 9561/ 년 5월 25일 14:15 ./ -rw-r--r / 년 5월 25일 14:08 ./test1 -rw-r--r / 년 5월 25일 14:09 ./test2 -rw-r--r / 년 5월 25일 14:09 ./test3 -rw-r--r / 년 5월 25일 14:09 ./test4 # _

12 4. 유틸리티(계속) # tar -rvf tarfile insert_file //insert_file의 추가
a insert_file 0K # tar -tvf tarfile //tarfile목록 표시 drwxr-xr-x 9561/ 년 5월 25일 14:15 ./ -rw-r--r / 년 5월 25일 14:08 ./test1 -rw-r--r / 년 5월 25일 14:09 ./test2 -rw-r--r / 년 5월 25일 14:09 ./test3 -rw-r--r / 년 5월 25일 14:09 ./test4 -rw-r--r / 년 5월 25일 14:22 insert_file # tar -xvf tarfile // 현재 디렉토리로 추출 x ., 0 bytes, 0 tape blocks x ./test1, 0 bytes, 0 테이프 블럭 x ./test2, 0 bytes, 0 테이프 블럭 x ./test3, 0 bytes, 0 테이프 블럭 x ./test4, 0 bytes, 0 테이프 블록 x insert_file, 0 bytes, 0 테이프 블럭 # _

13 find pathlist expression
4. 유틸리티(계속) 화일 탐색:find find pathlist expression pathlist: 경로명 expression: -name pattern -user userID -g groupID -atime count -mtime count -print 값 / 동작 파일의 이름이 pattern과 일치하면 참 파일의 소유자가 userID이면 참 파일의 그룹이 groupID이면 참 파일이 count 날 수 이내에 접근되었으면 참 파일의 내용이 count 날 수 이내에 수정되었고, 속성이 바뀌었으면 참 현재 파일명을 출력하고 참값을 반환

14 4. 유틸리티(계속) # ls //현재 디렉토리 내용 표시 a.c b.c test.c test1 test2
# find . -name '*.c' -print //*.c에 해당되는 파일을 현재의 디렉토리 ./a.c //부터 재귀적으로 탐색하여 출력 ./b.c ./test.c # _

15 4. 유틸리티(계속) 명령 스케줄링 -l: crontab 파일에 등록된 내용 표시 주기적인 실행: cron/ crontab
일련의 작업이 주기적으로 수행되도록 스케줄 한다. crontab crontabname crontab -ler [username] -l: crontab 파일에 등록된 내용 표시 -e: 등록된 crontab 파일을 편집 -r: 등록된 파일을 해제

16 4. 유틸리티(계속) # vi cronfile * * 1 echo happy today // 분, 시, 일, 월, 주 순서 :wq! # crontab cronfile // cornfile의 등록 # crontab -l // 등록된 crontab 파일의 내용 표시 * * 1 echo happy today # crontab -r // 등록 해제 # crontab -l # _

17 4. 유틸리티(계속) 프로그램 가능한 텍스트처리: awk 구조 하나 이상의 파일을 스캔 하여 특정한 조건에 맞는 모든 줄을
대상으로 정의된 동작을 실행한다. 구조 awk ‘pattern {action} pattern {action} …… ‘ filenames awk -f pattern-action-file filenames pattern-action-file: awk 실행 action을 가진 프로그램 파일

18 4. 유틸리티(계속) Pattern BEGIN 또는 END 논리 연산자, 관계 연산자 또는 정규식을 포함하는 식 action
if - else 문장 while 문장 for 문장 break continue 변수 = 연산식

19 4. 유틸리티(계속) 미리 정의된 변수 printf 형식[, 연산식의 리스트] [> 연산식]
next (현재 입력 줄에 남은 패턴을 건너뛴다) exit (현재 줄의 나머지는 건너뛴다) {문장의 리스트} 변 수 FILENAME FS NR NF OFS 내 용 현재 처리되고 있는 입력 파일의 이름 입력 필드 분리 문자 현재 레코드(행)의 번호 현재 레코드(행)의 필드의 갯수 출력되는 필드의 분리 문자

20 4. 유틸리티(계속) # awk '$2 > 90 {print $1}' exam // 점수가 90이상인 과목 출력
# vi exam Math 81 English 90 computer 75 chemistry 95 ethics 60 physics 86 :wq! # awk '$2 > 90 {print $1}' exam // 점수가 90이상인 과목 출력 chemistry # _

21 4. 유틸리티(계속) //평균값 계산 # vi average {sum += $2}
END {printf "The average is %.2f\n", sum/NR} # awk -f average exam The average is 69.57 # _

22 ln -sf original [newlink] ln -sf {original} directory
4. 유틸리티(계속) 하드 링크와 소프트 링크: ln ln -sf original [newlink] ln -sf {original} directory -s: 심볼릭 링크를 생성 -f: 수퍼유저가 디렉토리에 하드링크를 생성할 수 있게 한다. # ls -l heart -rw-r--r james netwk 월 16일 14:25 heart # ln -s heart heart_sln // 심볼릭 링크 # ls -l -rw-r--r james netwk 월 16일 14:25 heart lrwxrwxrwx james netwk 월 27일 11:05 heart_sln -> heart

23 4. 유틸리티(계속) # ls heart heart1 heart2 # ls -l
-rw-r--r james netwk 월 16일 14:25 heart -rw-r--r james netwk 월 27일 11:19 heart1 -rw-r--r james netwk 월 27일 11:19 heart2 # mkdir tmp # ln heart* tmp //하드 링크 # cd tmp # ls -l -rw-r--r james netwk 월 16일 14:25 heart -rw-r--r james netwk 월 27일 11:19 heart1 -rw-r--r james netwk 월 27일 11:19 heart2 # _

24 4. 유틸리티(계속) 사용자 대치: su 다른 사용자가 소유하는 서브 쉘을 생성할 수 있게 한다. su [ username]
username의 디폴트는 root이다. 본래의 쉘로 다시 되돌아 오기 위해서는 Control-D를 입력한다. # whoami james # su password: #root # __

25 4. 유틸리티(계속) 화일변환 화일 압축: compress/ uncompress compress -cv {filename}
uncompress -cv {filename} .Z 접미사가 붙는다. -c: 표준 출력으로 내보낸다. -v: 압축정보 제공

26 4. 유틸리티(계속) # compress -v misc.c main.c // 압축 수행
misc.c: 압축: 39.53% -- misc.c.Z로 대체됨 main.c: 압축: 55.46% -- main.c.Z로 대체됨 # ls -l -rw-rw-rw- 1 extra netwk 월 13일 14:28 main.c.Z -rw-rw-rw- 1 extra netwk 월 13일 14:28 misc.c.Z # uncompress -v *.Z // 원래 파일로 다시 복원, compress -d도 가능 main.c.Z: -- main.c로 대체됨 misc.c.Z: -- misc.c로 대체됨 # ls -l -rw-rw-rw- 1 extra netwk 월 13일 14:28 main.c -rw-rw-rw- 1 extra netwk 월 13일 14:28 misc.c # _

27 \215 lu4f^S\270^B{)^N'Q^W\232;:\312^FSb\276^T
4. 유틸리티(계속) 파일 암호화: crypt key를 이용해서 정규 텍스트를 암호화된 텍스트출력 key를 이용해서 암호화된 텍스트를 정규 텍스트로 출력 crypt [key] # vi cryptfile this is a very important :wq! # crypt secret <cryptfile> sample.crypt # cat sample.crypt \ lu4f^S\270^B{)^N'Q^W\232;:\312^FSb\276^T # rm cryptfile # crypt secret <sample.crypt> cryptfile # cat cryptfile # _

28 4. 유틸리티(계속) 파일 시스템 마운트: mount / umount
장치의 파일 시스템을 루트 계층 구조로 결합 시킬 수 있게 한다. 수퍼 유저만이 마운트 할 수 있다. 인수 없이 mount를 사용하면 현재 마운트된 장치의 목록을 제공. mount -o options [devicename] [directory] umount devicename options: rw은 읽기/쓰기로 마운트, ro는 읽기 전용으로 마운트

29 4. 유틸리티(계속) # mount // 현재 마운트된 장치 표시 /dev/dsk1 on (rw)
# ls /usr // /usr는 현재 비어 있음 # mount /dev/dsk2 /usr // /dev/dsk2 장치를 마운트 # mount // 현재 마운트된 장치 표시 /dev/dsk1 on / (rw) /dev/dsk2 on /usr (rw) # ls /usr // 마운트된 장치의 내용 표시 bin/ etc/ include/ lost+found/ src/ ucb/ demo/ games/ lib/ pub/ sys/ ucblib/ # _

30 4. 유틸리티(계속) # umount /dev/dsk2 // 장치를 마운트 해제 # mount // 현재 마운트된 장치 표시
/dev/dsk1 on (rw) # ls /usr // /usr가 다시 비어 있음 # _

31 4. 유틸리티(계속) 쉘의 소유자 확인: whoami 터미널 확인: tty whoami # whoami james # _
/dev/pts/6 # _


Download ppt "grep -hnlvwi patten {filename}"

Similar presentations


Ads by Google