- PR -

Cシェル作成について

1
投稿者投稿内容
sh
会議室デビュー日: 2006/01/06
投稿数: 1
投稿日時: 2006-01-06 10:07
シェル作成が初心者のものです。
説明不足な点は,ご指摘願います。

ディレクトリにある,ファイル名を判断して
所定のディレクトリにmvするようなシェルを作りたいのですが,
つまづいています。

やりたいと考えていることは,
実行したシェル内で
ls > file_list.txt
をして,ファイル名の一覧をtxtファイルにし,
そのtxtファイルを読み込んでファイル名を判断して,所定のディレクトリにmvしたいのですが,
「ファイル名を読み込んで,判断する」という部分をどうすれば良いのかが
わかりません。


ファイル名は,ファイルID(4桁)_年月日(8桁).dmpという形式になっており,10000件ほどあります。
例)Z001_20050101.dmp
  Z002_20051103.dmp
  Z003_20050908.dmp
  Z004_20051212.dmp
  Z005_20050519.dmp
     :
     :
     :
     
ファイルの年度と月を見て,年度月別のディレクトリに移動させたいです。


同様の処理をやったことがある方は,
ご教授お願い致します。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-01-06 10:43
最初に手操作をイメージする
cd そのDIR
mv ????_200501??.dmp 移動先DIR/
??の部分は 適当に

検索語
ファイル名パターン
メタキャラクタ コマンド bash
など
================
検索の極意は「五木ひろしの横浜たそがれ」
テーマにヒットするキーワードを閃けるか、です。
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2006-01-06 15:01
同様に

検索語
xargs

==============
しまつたこんな語で検索できるやうでは最初から解を知つてゐるのと同じではないか(なぜに古めかしい表現なのかは不明)

# 一つ苦言:
# sh さんが作成されたいものは「シェルスクリプト」です。
# 「シェルスクリプト」を実行する主体が「シェル」です。
# 「シェルスクリプト」を「シェル」と省略すると意味がさっぱりわからなくなったり、
# 「わかっていない奴」と鼻で笑われたりするのでご注意ください。

## いや、本当に C-shell や bash, ksh, zsh に取って変わるようなシェルを作りたいと
## いうケースがごく稀にあるかもしれませんが。
tmp
会議室デビュー日: 2006/01/12
投稿数: 11
投稿日時: 2006-01-12 21:09
引用:

shさんの書き込み (2006-01-06 10:07) より:

やりたいと考えていることは,
実行したシェル内で
ls > file_list.txt
をして,ファイル名の一覧をtxtファイルにし,
そのtxtファイルを読み込んでファイル名を判断して,所定のディレクトリにmvしたいのですが,




私もCシェル初心者ですが、以下のサンプルを作ってみました。

[sample.sh]
#!/bin/csh
foreach tmpfile (`cat ./list.dat`)
# ファイル名から "yyyymm" を取り出し。
set tmpdir=`echo "$tmpfile" | cut -c 6-11`

if ( ! -d $tmpdir ) then
mkdir $tmpdir
endif
cp -pr $tmpfile $tmpdir/$tmpfile
end

exit 0
#EOF

[list.dat(上記シェルの入力ファイル)]
Z001_20050101.dmp
Z002_20050102.dmp
Z041_20060101.dmp
Z071_20061101.dmp
Z081_20061101.dmp
Z091_20991101.dmp
Z091_20991231.dmp
#EOF

以上です。

参考になるかどうか分からないですが、
お役に立てれば幸いです。

1

スキルアップ/キャリアアップ(JOB@IT)