指定ディレクトリ下でファイル名をファイル先頭に書き込むシェルスクリプト

#! /bin/sh                                                                                 
                               
for i in `find . -name '*.txt*'`
do
  cat $i > $i.tmp
  basename $i | cut --delimiter="." -f 1 > $i
  cat $i.tmp >> $i
  rm $i.tmp
done


#追記
その2。M田氏にもっと良い書き方を教えてもらいました。

#! /bin/sh

for i in `find . -name '*.txt*'`
do 
  (basename $i | cut --delimiter="." -f 1 ; cat $i) > $i.tmp
  mv -f $i.tmp $i
done


その3。basenameだけで拡張子抜きのファイル名が得られました。

#! /bin/sh

for i in `find . -name '*.txt*'`
do 
  (basename $i .txt ; cat $i) > $i.tmp
  mv -f $i.tmp $i
done

メモ