2011年3月24日 星期四

更改目錄中的檔案名稱

#!/usr/bin/perl


$dirname = "/mtc12/home2/user/michael/Zcircuit/Socle/DATA/LVT_cells/Net_spc";
opendir(DIR, $dirname) or die "can't opendir $dirname: $!";
while (defined($file = readdir(DIR))) {
                $dut =  $dirname."/".$file;
                $a_name = $file;
                @ary=split(/\./, $a_name);
                $new_file_name = $ary[0].".".$ary[1];
                print $new_file_name."\n";
                rename($dut, $new_file_name);
                #copy($dut, $new_file_name);
}
        closedir(DIR);


將目錄中所有的檔案中的一行COPY到另外一行

$dirname = "C:\\LVT_cells";
opendir(DIR, $dirname) or die "can't opendir $dirname: $!";
while (defined($file = readdir(DIR))) {    
 $dut =  $dirname."\\".$file;
 print $dut."\n";
  open(h1, "<$dut");
  open(h2, ">temp.cir");
  while(<h1>){
   chop $_;
   print h2 $_;
   print h2 "\n";
   @ary=split(" ",$_);
   if($ary[0] eq ".include"){
    $write_back = $_;
    print $write_back."\n";
   }
   
   if($ary[0] eq ".subckt"){
    print h2 $write_back."\n";
    print $write_back;
    print "got it";
   }
   
   if($ary[0] eq ".ends"){
    close(h2);
    rename("temp.cir",$dut.".cir");
    open(h2,">temp.cir");
   }
 }
}
 closedir(DIR);

2011年3月14日 星期一

如何同時輸出資料到log file跟螢幕上

Liberate will output messages into stdout and stderr.  Be sure to capture both into a file for later review.
Batch Mode  (This is the recommended mode)

Example:
Unix> ${ALTOSHOME}/bin/liberate  char.tcl  |&  tee  char.log


autoCharDrivers 1>>log/autoCharDrivers.zlog 2>&1

2 為Console標準錯誤
1 為Console標準輸出

此為 Unix 的標準 , Windows 也有遵循 POSIX 可以通用.

所以呢 !!!!
如果你執行 
perl xxx.pl 2>&1 
就是把 標準錯誤 重新導向到 標準輸出 , 讓你可以一起看到這兩者輸出 .

通常呢 !!!!
如果你執行 
perl xxx.pl 2>&1 > debug.log
執行完畢後 , 你可以從 debug.log 檔案中看到所有的 標準錯誤 標準輸出

perl xxx.pl 1>out.log 2>err.log
則 out.log 為標準輸出 , err.log 為標準錯誤 .

">" : 一般資訊到log  錯誤資訊留在螢幕
">&"  : stdout 及 stderr 重導向到檔案(command >& file)

UNIX 系統中的垃圾桶,專門供你處理不必要輸出訊息 :“/dev/null”
例:ps axu | grep cron | grep -v grep >& /dev/null


傳送指令
  1. 標準輸入(stdin) :代碼為 0 ,使用 < 或 <<
  2. 標準輸出(stdout):代碼為 1 ,使用 > 或 >>
  3. 標準錯誤輸出(stderr):代碼為 2 ,使用 2> 或 2>>
下達 2>&1:標準輸出與標準錯誤輸出同時寫入同一個檔案 

[csie@linux ~]$ find /home -name testing > list 2> list  <==目前系統這寫法也可以
## 習題:請問上面命令的執行結果為何?
[csie@linux ~]$ find /home -name testing > list 2>&1     <==正確寫法

2011年3月1日 星期二

蘋果橘子經濟學

對經濟學家來說重要的是了解世界如何運作而不是我們希望或者是傳統智慧告訴我們他如何運作


誘因是現代生活的基石


專家也是人 而人會受到誘因incentive的影響


就算兩件事情相關也並一定義為彼此間存在因果關係 相關只代表兩項因素間存在某種關係但卻無法告訴你關係的方向


道德代表理想世界的運作方式  經濟學代表真實世界的運作方式


專家-利用資訊悠是謀取自己利益  不過因為網路的崛起專家們傳統上的優勢日漸縮水


知道該測量甚麼該如何測量可以讓複雜的世界大為簡化


經濟學就是研究各類誘因:怎樣得到自己想要的東西 尤其是其他人也想要的東西?


所謂誘因:就是促使人多做好事少做壞事的一種手段


又因大致有三種基本性質:經濟 社會與道德 不過單一誘因經常三者兼具


低額罰款的問題是:以經濟誘因取代道德誘因  再者低額的罰款似乎也在告訴人們遲到並不是多嚴重的事


費爾茲:值得擁有的事物就值得去騙來


欺騙是一種本能的經濟行為: 以更少的代價獲得更多


information asymmetry: 交易中一方擁有的資訊優於另為一方


網際網路如同一塊磁石 可以從一堆一堆的乾草中西出埋藏其中的細針


資訊犯罪的特色之一:就是犯罪曝光者寥寥可數


專家們俱備相當資訊因此能發揮巨大但未必會明說的操控力:害怕


在房中業者的心目中與其說視你為伙伴還不如說視容易操控的對象


仲介的主要武器:化資訊為恐懼


在交易中具體而明確的用語比較管用  模糊的形容詞暗示人們物件本身乏善可陳


我們公開主張的資訊往往與自己瞭解的真實資訊存有巨大的鴻溝:說一套做一套


問問題的第一招就是確認你問的是個好問題


專家往往都表現得極端自信 它們談論問題時  主要是鞏固自己的立場而非廣泛考慮事情的不同層面


要讓自己的理論讓人接受最好的方式莫過於素豬群眾的情緒  只要情緒一上來就不需要再談甚麼理性辯論  而各種情緒中又以恐懼的力量最大(恐懼是追求短期表現的有利推手)


風險=實質危害+心理恐慌


相關(Correlation)是一個統計學名詞  指的是兩項變數一起移動


父母"是"甚麼比父母"做"甚麼對子女的影響還大:重要的不是身為父母的你做了甚麼 而是你是誰


 


標籤