Solution ID: 139282642 Type: External 表題: テキストファイルが8000バイト以上の行を含むかチェックする方法 製品: ClearCase バージョン: OS: WINDOWS/UNIX DEFECT #: N/A PATCH #: N/A 参照事項: 作成年月日: 17-Oct-2002 改訂年月日: 質問: ClearCaseは一行に8000バイト以上含まれている テキストファイルはtext_fileのエレメントタイプとして 管理しなくなります。そこで、あるディレクトリ以下の どのファイルの何行目に8000バイト以上のデータが 存在するか判別する方法はありますか。 回答: ClearCaseの機能(コマンド等)で判別する方法はありません。 従って、新たに判別のためのツールを作成する必要があります。 以下のClearCase付属のccperlによる 8000バイト以上の行を検出するスクリプトの一例を 参考にツール作成を行ってください。 #引数よりディレクトリ名を得る if( $#ARGV < 0 ) { $dirname = "."; }else { $dirname = shift( @ARGV ); } opendir DIR, $dirname or die "Error: Cannot open dir[$dirname]\n"; print "------------ Line(s) Over 8000 Bytes -----------\n"; #ディレクトリ内の全てのファイルをチェック while( $fname = readdir DIR ) { $fname = $dirname . "\\" . $fname; #テキストファイル以外は対象外 if( -B $fname || -d $fname ) { next; } #htmlファイルとtext_fileファイル以外は対象外 #他のタイプ(Cソースファイル等)もチェックする場合には #element typeを追加、または、この部分を削除する $tmpfile = "dummy.txt"; system( "cleartool desc -l $fname > $tmpfile" ); $result = `type $tmpfile`; chop $result; system( "del $tmpfile" ); if( $result !~ "element type: text_file" && $result !~ "element type: compressed_text_file" && $result !~ "element type: html" ) { next; } #行数をチェックする open FD, $fname or next; while( ) { $len = (length $_) - 1; if( $len >= 8000 ) { #8000行以上の行を表示する print "$fname : Line# $. Bytes $len\n"; } } } ご不明な点等ありましたら、ラショナルカスタマサービスへお問い合わせ下さい。