| 1011 번 글의 답장글: Re: 쉘스크립트 질문입니다. |
| 글쓴이: 산이
[홈페이지]
|
글쓴날: 2002년 04월 04일 20:17:46 목(저녁) |
조회: 776 |
[원아이드잭]님이
남기신 글:
>FirebirdCS-1.0.0-0.Beta2.tar.gz
>apache_1.3.23.tar.gz
>aspell-.33.7.tar.gz
>curl-7.9.3.tar.gz
>freetype-2.0.8.tar.gz
>gd-1.8.4.tar.gz
>imap.tar.Z
>jpegsrc.v6b.tar.gz
>libmcrypt-2.4.16.tar.gz
>libpng-1.2.1.tar.gz
>mhash-0.8.13.tar.gz
>mod_ssl-2.8.7-1.3.23.tar.gz
>mysql-3.23.49.tar.gz
>number4.tar.gz
>openssl-0.9.6c.tar.gz
>pdflib-4.0.2.tar.gz
>php-4.1.2.tar.gz
>pspell-.12.1.tar.gz
>tiff-v3.5.7.tar.gz
>zlib-1.1.3.tar.gz
>
>제가 위의 목록을 쉘스크립트를 짜서
>나머지는 다 지우구 아래 목록 같이 출력을 하고
싶거든요.
>몇가지 방법을 생각했는데 제 실력으로는 무리인거
같아요..
>형식이 xxx-x.x.x.tar.gz 인거는 되기는 한데. 나머지는 어떻게
처리해야 될지를 잘 몰겠어요..
>조언 부탁드립니다.
>
========================================
무엇 보다 중요한점은 각각의 파일에서 서로 공통점인 규칙을
찾아야 합니다.
[규칙 1]
.
-
이하의 문자열은 모두 제거
[규칙 2]
_ 문자열이 들어가고 뒤어 숫자만로 이루어지면 제거.
(apache_1.xxxx 와 mod_ssl-xxx 을 서로 구분해야함)
따라서
변수 lists 가 아래와 같다면
lists='
FirebirdCS-1.0.0-0.Beta2.tar.gz
apache_1.3.23.tar.gz
aspell-.33.7.tar.gz
curl-7.9.3.tar.gz
freetype-2.0.8.tar.gz
gd-1.8.4.tar.gz
imap.tar.Z
jpegsrc.v6b.tar.gz
libmcrypt-2.4.16.tar.gz
libpng-1.2.1.tar.gz
mhash-0.8.13.tar.gz
mod_ssl-2.8.7-1.3.23.tar.gz
mysql-3.23.49.tar.gz
number4.tar.gz
openssl-0.9.6c.tar.gz
pdflib-4.0.2.tar.gz
php-4.1.2.tar.gz
pspell-.12.1.tar.gz
tiff-v3.5.7.tar.gz
zlib-1.1.3.tar.gz'
이라면,
for file in $lists ; do
file=${file%%.*} ## 규칙 1 적용
file=${file%%-*} ## 규칙 1 적용
file=`echo $file | sed 's/_\([0-9]\+\)$//'` ## 규칙2 적용
echo $file
done
이렇게 해야할것 같군요...
file=${file%%.*}
은 변수 $file 에 대해서,
뒤(%)에서 부터 . 으로 이루어진 가장긴 부분(%%) 모두(*)를
제거하라는 의미입니다.
|
이전글 : 쉘스크립트 질문입니다.
다음글 : Re: Re: 쉘스크립트 질문입니다.
|
from 61.254.130.206
JS(Redhands)Board 0.4 +@
|