#!/usr/bin/perl
open cdl, "******.cdl" or die $!;
open out, ">output.cdl" or die $!;
while ($lines=)
elsif($lines=~/ends/ and $line_control==1)
if($line_control==1)
}close cdl;
close out;
#!/usr/bin/perl
open cdl, "all.cdl" or die $!;
open out, ">output.cdl" or die $!;
open list, "list" or die $!;
@list = ;
$count = 0;
foreach my $cell(@list)
elsif($lines=~/ends/ and $line_control==1)
if($line_control==1)
}}close cdl;
close out;
close list;
#!/usr/bin/perl
if(-e "output.cdl")
open list, "list" or die $!;
@list = ;
$count = 0;
foreach my $cell(@list)
elsif($lines=~/ends/ and $line_control==1)
if($line_control==1)
}}close list;
由於while是一行一行處理的,處理完一行後,就不會再回來了,只會繼續處理後面的新行。如果list和cdl的順序不一致,就會發生下面的情況,比如:
list:
adddff
latch
muxsdff
cdl:
addmux
latch
dffsdff
output:
adddff
這是因為找到dff之後,cdl中的add/mux/latch/dff這些行都已經被處理過了,所以接下來找latch是找不到的。
為了解決這個問題,採用了open控制代碼的操作放在了foreach迴圈中,每次讀取下乙個list時,重新開啟cdl控制代碼,讓while迴圈從第一行開始處理,一旦抓到匹配行就追加
進output檔案,接著用last語句立刻結束while迴圈,並關閉控制代碼,以便跳到外層的foreach迴圈重新開啟cdl控制代碼。
awk輸出相同列的前兩行和後兩行
要求列印,第一列相同的頭兩行和後兩行 file ax bx 1 ax bx 2 ax bx 1 ax bx 8 ax bx 1 ax bx 3 ax bx 5 cx bx 1 cx bx 0 cx bx 1 cx bx 6 cx bx 9 ex bx 1 ex bx a ex bx 1 ex bx ...
python兩行輸出問題
first 我們來看問題 問題 對於給定的元組 1,2,3,4,5,6,7,8,9,10 編寫乙個程式,在一行中列印前半個值,在一行中列印後半個值 分析 在python中,終端輸出會自動分兩行輸出,所以為了能讓元組分成兩組數,我讓兩組數中以空格間隔 但結果是這樣 沒有按兩行,所以 指定了間隔符,py...
python程式的前兩行
摘抄自 一般看乙個python程式都會看到 usr bin python filename helloworld.py 作為乙個檔案的前兩行 它被稱作 組織行 原始檔的頭兩個字元是 後面跟著乙個程式。這行告訴你的linux unix系統當你 執行你的程式的時候,它應該執行哪個直譯器。chmod a ...