忍者ブログ
SE稼業で見知った小ネタをまとめてみます。 サーバ・ヲタなので、主にそっち系のTipsを。
[18]  [16]  [15]  [14]  [13]  [12]  [11]  [10]  [9]  [8]  [7
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Windows PCからアップロードしたファイルを、
サーバ側にて一括変換する
シェルスクリプト。

#!/bin/tcsh
##################################################################
# Shift_JISコードのWindows/DOS形式ファイルを
#  EUCコードのものに変換
#
# 使用方法: $0 directory...
#
##################################################################

# 全てのaliasを削除
unalias *

# コマンドに指定されたディレクトリをそれぞれ処理
foreach DDD ( $* )

    # ファイルを探し、見つけたファイルをそれぞれ処理
    foreach FFF ( `find $DDD -type f -print` )
        # ベース名(basename)
        set BASNAM=$FFF:t
        echo -n "processing $FFF ... "
        #
        # 改行のCRを除去後、EUCコードへの変換を行って/tmpの仮ファイルに出力
        cat $FFF | dos2unix -ascii | sjtoeuc > /tmp/$BASNAM
        # ファイルの更新日時を移行
        /usr/local/bin/touch -r  $FFF   /tmp/$BASNAM
        # 仮ファイルを元ファイルに上書き
        mv -f /tmp/$BASNAM $FFF
        echo "done"
    end
end

echo "終わり"

exit 0


現場では、
開発サーバ(Solaris9)にSambaを導入し、
Windows PCと連携させている。

が。

WindowsからUNIXへテキストファイルを送り込んだ場合、
漢字コードと改行コードを変換してやる必要がある。
(FTPクライアントのように中身の変換までしてくれないから)

で、
しょっちゅうこんなシェルスクリプトを作っているみたいなので、
ここに掲載しとこう。

Cシェル・ネタ としてるが、
現状では
T-Cシェルでしか動作しなくなってる部分あり。
ベース名を求めてるとことか。

 

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
この記事へのトラックバック
この記事にトラックバックする:
お見えになった方の数
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新CM
[08/30 godnowhere]
最新TB
プロフィール
HN:
godnowhere
性別:
男性
職業:
システム・エンジニア
趣味:
機械いぢり
analyzer
忍者ブログ [PR]