a001.dat a002.dat a003.dat ... a200.dat 와 같은 데이터 파일들이 있습니다. testexe라는 프로그램을 이용하여 위의 데이터 파일들을 처리해야 하는데, 데이터 파일들이 200개가 넘어서 쉘 프로그램으로 처리하려고 합니다.
문제는 데이터 파일명(확장자 없이)의 리스트를 얻는 방법인데 쉘 함수들 중에서 적절한 함수를 찾지 못하겠습니다.
어떻게 해결할 수 있는 방법이 없을까요?
꼭 shell 내부 함수나 문법만 사용하려고 해선 문제를 해결하기가 쉽지 않습니다. sed, awk 등의 UNIX의 기본 유틸리티를 적극 활용하세요.
#!/bin/sh for i in $(ls | sed 's/\..*//g') do echo item: $i done
-----http://monpetit.posterous.com/http://monpetit.tistory.com/
suffix를 알고 계신 경우이니까.
for i in $(ls *.suffix); do basename $i .suffix; done
sed 's/\.[^.]*$//g'
오늘 우리는 동지를 땅에 묻었습니다. 그러나 땅은 이제 우리들의 것입니다. 아직도 우리의 적은 강합니다. 그러나 우리는 그들보다 많습니다. 항상 많을 것입니다.
여러가지가 나오네요..
저도 동참을..
for i in *.dat; do j=${i%%\.dat} echo $j done
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동 "만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
제 생각이지만 속도는 이게 빠르지 않을까요?
ls | cut -f1 -d"." | while read name do echo "Item: ${name}" done
입력되는 파일명을 볼때 .dat 같은 고정된 확장자명 같네요.
제 생각에는 ${변수%삭제확장자}를 쓰는 두 단 위의 해법에
한표!
ps: only for B*sh계열인가요?
------------------------------- == warning 대부분 틀린 얘기입니다 warning ===
많은 분들이 답변들을 주셨네요. 덕분에 문제를 해결할 수 있었습니다.
친절히 답을 해주신 모든 분들께 감사드립니다. 꾸벅
텍스트 포맷에 대한 자세한 정보
<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]
꼭 shell 내부 함수나 문법만 사용하려고 해선 문제를 해결하기가 쉽지
꼭 shell 내부 함수나 문법만 사용하려고 해선 문제를 해결하기가 쉽지 않습니다. sed, awk 등의 UNIX의 기본 유틸리티를 적극 활용하세요.
#!/bin/sh for i in $(ls | sed 's/\..*//g') do echo item: $i done-----
http://monpetit.posterous.com/
http://monpetit.tistory.com/
suffix를 알고 계신 경우이니까.[code:1]for i
suffix를 알고 계신 경우이니까.
하시는게 좀 더 쉬울 것 같군요
그리고 sed를 쓰실 경우라면
를 쓰시는게 basename에 .를 포함하고 있는 경우를 고려할 때 좀 더 안전할 것 같습니다.
오늘 우리는 동지를 땅에 묻었습니다. 그러나 땅은 이제 우리들의 것입니다.
아직도 우리의 적은 강합니다. 그러나 우리는 그들보다 많습니다.
항상 많을 것입니다.
여러가지가 나오는군요..
여러가지가 나오네요..
저도 동참을..
for i in *.dat; do j=${i%%\.dat} echo $j done고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
속도는 이것이 빠를듯...
제 생각이지만 속도는 이게 빠르지 않을까요?
ls | cut -f1 -d"." | while read name do echo "Item: ${name}" done흠..
입력되는 파일명을 볼때 .dat 같은 고정된 확장자명 같네요.
제 생각에는 ${변수%삭제확장자}를 쓰는 두 단 위의 해법에
한표!
ps: only for B*sh계열인가요?
-------------------------------
== warning 대부분 틀린 얘기입니다 warning ===
감사합니다 *^^*
많은 분들이 답변들을 주셨네요.
덕분에 문제를 해결할 수 있었습니다.
친절히 답을 해주신 모든 분들께 감사드립니다. 꾸벅
댓글 달기