쉘 스크립트 질문..

einird의 이미지

안녕하세요, 연습문제를 하다가 답도 없이 막혀버린 몇문제 도무지 못하겠어서 도움을 요청할께요..

Shell script 로 짜야 하는데요,

(( ./word 파일이름 ))
1. 이 스크립트는 적혀진 파일에 담긴 모든 단어를 찾고 각 단어가 몇번 나오는지를 세어서 표시한다.(grep쓰는것 같긴한데 도무지..)

예) 만약 temp.txt안에 'time'이 5번, 'is'가 3번, 'money'가 2번 적혀있다면..
$ ./word temp.txt

time 5
is 3
money 2

(( ./scan [-r] [디렉토리이름] ))
2. 적힌 디렉토리에 있는 파일들중 가장 큰 파일과 가장 작은 파일을 찾는 스크립트.
>> 만약 디렉토리 이름을 적지 않았다면 현재 디렉토리에서 스캔한다.
예) 가장큰 파일: 디렉토리이름 / 파일이름

(( ./which [-a] cmd ))
3. 이 스크립트는 적혀진 커맨드 이름(위같은 경우 cmd)의 경로(PATH)를 찾아 보여준다.
>> 만약 -a 가 붙지 않는다면 cmd가 실행된 그 경로만, -a가 붙었다면 해당되는 모든 패스를 표시한다.
예) $ ./which -a ls
/usr/local/bin/ls
/bin/ls

고수님들 답변 부탁드려요..

anabaral의 이미지

1번 : 다음을 참조하셔요 (좀 수정해야 깔끔)
for i in `cat temp.txt`; do echo $i; done | sort | awk 'BEGIN{a="";n=0}{if (a
!= $1) {print a " " n;a=$1;n=1} else {n = n + 1}}END{print a " " n}'

2번 : 다음을 참조하셔요 (허접.. ls 가 지원하는 폼에 따라 원하는 출력이 안나올수도)
cmd=$1
ls -lS ${cmd} | sed -e '/^[^-]/d'|awk '{print "젤큰파일 : " $9}'|head -1

3번 : 다음을 참조하셔요

cmd=$1
PPATH=`echo $PATH | sed -e 's/:/ /g'`

for i in $PPATH
do

if [ -f ${i}/${cmd} ]; then
echo ${i}/${cmd}
fi

done

부랴부랴~~~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.