![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| UNIXのダミー質問と回答のため もしUNIXやLinuxについての質問があれば、ここに投稿してください。すべてのUNIXおよびLinux初心者歓迎! |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| ベースの長さのファイルを見つける必要 | J_ang | UNIXのダミー質問と回答のため | 8 | 2007年3月26日 08:21午前 |
| 異なるフォルダのファイル名に基づいてどのようにファイルを移動する | italia5 | UNIXのダミー質問と回答のため | 7 | 2006年8月23日 10:04午前 |
| どうすれば、コマンドは、検索する、ファイルのパスを表示されますか? | LordJezo | シェルプログラミングとスクリプティング | 1 | 2004年10月1日 06:01午前 |
| 検索するファイルの内容に基づいてファイル名を | kollerj | UNIXのダミー質問と回答のため | 4 | 2001年6月2日 01:31午後 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
、し、ファイルを移動させる上でのユーザー名をベースにして下さい
こんにちは、
私のUNIX (だけ使用) 3month 、新しいよ 私は、ボックス内のファイルとディレクトリの多く/ホーム/ボックス含ま発見/ 私tisフォーラムのスクリプトを検索しようとし、それらの多くが見つかりましたが、わかんない それらのスクリプトをどのようにするには、パイプを使用しては結合してください。 私の仕事です: 1 )ユーザディレクトリのスキャンを/ home /ユーザ/ -私は慣れている はls -レーザ/ホーム/ $ユーザー/ 、 $ユーザーキーをする必要がありますインチ 2 )次に、タスク( 1 )で、拡張機能のグループに"などが。 txt " 、 " 。 shに" 、 " 。 DATの"スキャンディレクトリ内のすべてのファイルのグループ 私は、使用される はls - l | awkは'開始のFS \u003d"."} ( ( ) ' $ 2印刷> index.txt 3 ) index.txtに基づいて、これらの拡張機能などのディレクトリを参照させてやる。 /ホーム/ユーザー/ txtExtension /ホーム/ユーザー/ datExtension / その後すべてのファイルの拡張子ディレクトリに移動します。すみません、私はこのスクリプトを作成するための方法を見つけることができません。 私は上記の簡単なスクリプトを組み合わせることが、すべて私のベストを尽くしたが、 3号は私にとって難しい。 何かのUNIXシェルの専門家は、私ガイドに考え、解決したり、サンプルスクリプトがある よろしく、 Helmi 。 |
|
||||
|
インデックスでファイルの移動
私はスクリプトでは、以下のファイル拡張子の異なるタイプの/ tmpの下にユーザーディレクトリを作成してテスト
コード:
#!/bin/ksh
/bin/rm index.dat
set -A USER_HOME /tmp/UserA /tmp/UserB /tmp/UserC /tmp/Root /tmp/GroupA /tmp/GroupB
set -A USERS UserA UserB UserC Root GroupA GroupB
for v in ${USERS[*]} ; do
find /tmp/$v -type f | awk -F. ' (NF == 2 ){ print $2 }' | sort -ud | tee -a index.dat
done
for type in $(<index.dat); do
NewDir=/tmp/${type}-IndexedFileDir
mkdir -p $NewDir
find ${USER_HOME[*]} -type f -name "*.$type" -print | xargs -I{} -t mv {} ${NewDir}
done
ありがとう Nagarajan Ganesan |
|
||||
|
コード:
#!/bin/sh
awk -v user="user1" ' BEGIN { path = " /home/" user "/";command = "ls" path ;
while ( (command | getline line)>0 ) {
if (line ~ /\....$/) {
ext = substr(line,length(line)-2)
Extension[ext]
files[line] = ext
}
}
}
END { makedircmd = "mkdir "
for ( e in Extension) {
print "making " path e
dir = path e
makedircmd = makedircmd dir
print makedircmd
}
#system(makedircmd) #uncomment to use
for (f in files) {
mvcmd = "mv" path f " " path files[f]
traceback = "mv" path files[f] "/" f path
print traceback
print traceback >> "backup.sh" #backup
#system(mvcmd) #uncomment to use
}
}
' "file"
|
|
||||
|
私は、スクリプトを編集した
コード:
user="TEST" ' BEGIN { path = " /home/rosman/" user "/";command = "ls" path
参考、私は、 rootとしてログインしない場合は、そのためadduserすることはできません。そのためには、私はテストのためにダミーのディレクトリした。エラー状態だった コード:
[rosman]: /home/rosman/TEST => backup.sh awk: 0602-533 Cannot find or open file file. The source line number is 1. よろしく、 Helmi |