shell scripts 的一個問題

我想請問一下 如果我有一個資料夾data 裡面有一些資料

data(資料夾)

------------

AAK.1 AAK.2 AAK.c BBE.a BBE.b WWWWW.1 WWWWW.2 FFF.1 FFF.rr.j YY.3 YY.4 T.1

--------------------------------------------

那假設全部的data 前面一樣的我只要讀一個

AAK.1 AAK.2 AAK.c 這個我只要讀一個(隨便一個都可以)

請問要怎麼寫呢@@ 謝謝了

不然也可以讓資料夾裡面 出現的檔案只出現一次也可以

就變成data(資料夾)

----------------------------------------

AAK.1 BBE.a WWWWW.1 FFF.1 YY.3 T.1

----------

這樣也可以

真的很不知道該怎麼辦 謝謝了

2 Answers

Rating
  • 10 years ago
    Favorite Answer

    您的問題就是要先將點號前的名稱取出(使用 awk or cut),

    查看是否已存在,

    若不存在則顯示出來,

    並暫存起來。

    我並沒有查到一個語法可以達成您的需求,

    所以可能需要寫一段 shell script,

    請自行更換 DATA_DIR 的值,

    示範程式碼如下:

    #!/bin/sh

    DATA_DIR='./'

    tmp=''

    for i in `ls $DATA_DIR`

    do

    fname=`echo $i | awk -F. '{print $1}'` #fname=`echo $i | cut -d . -f 1`

    if [ "$tmp" != $fname ]

    then

    echo $i

    tmp=$fname

    fi

    done

    2010-10-08 18:38:33 補充:

    if [ "$tmp" != $fname ]

    請修正成:

    if [ "$tmp" != "$fname" ]

    2010-10-08 18:57:22 補充:

    本程式只有使用英數檔名作測試!

    Source(s): 自己, 自己, 自己
  • 是我
    Lv 5
    10 years ago

    ls data|cut -f 1 -d '.'|uniq

    data 為資料夾名

Still have questions? Get your answers by asking now.