アプリ版:「スタンプのみでお礼する」機能のリリースについて

Linuxをつかいシェルスクリプトを組んでいます

for arg in ${DIR}_/*.csv
do
md5sum ${arg} | awk '{printf("%s,%s\n",$2,$1)}' >> ${DIR}/HASH.csv
done

上記のような処理でHASH.csvにファイル名とファイルのハッシュ情報を登録しています。
↓登録されたデータはこんな形になります。
 aa/bb/cc/xx.csv,aa339d9idedeeded・・・
 aa/bb/cc/ww.csv,aa339d9idedeeded・・・
 
しかし、このままだとこのパスの部分『aa/bb/cc/』が邪魔なので削除したいと考え
以下のようにしましたが、うまく登録できません。

sed -e "s/\/\(aa\)\/\(bb\)\/\(cc\)\///g" ${DIR}/HASH.csv > ${DIR}/B8HASH.csv

>>で出力するようにしたら削除前の下に削除後の情報が追加されてしまいました。
このような場合はどのようにしたら良いのか、ご助言お願い致します。
この方法ではなく、for文の時点で削除できるようであればその方法を教えてください。

A 回答 (1件)

for arg in ${DIR}_/*.csv の _ に意味はあるのでしょうか?


これが「本当は for arg in ${DIR}/*.csv です」というなら, もっと簡単に
(cd $DIR
for arg in *.csv; do
...
done
)
とサブシェルにしてしまうのが最も簡単ではないかと.
    • good
    • 0
この回答へのお礼

あっ…
そんな風に出来るんですね。ハズカシイ。
その方法でためしたら出来ました。
ありがとうございました

お礼日時:2009/10/08 17:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!