2017-04-11 130 views
-1

script.shAWK命令不打印文件的所有行

#!/bin/sh 


awk '{if ($1=="%%Page:" && $2=="(1)" && $3== "1") {print "%%BeginPageSetup""\n""<<"" ""/Duplex" ;print $0;} 

else if($1=="%%Page:" && $2=="(2)" && $3== "2") {print "%%BeginPageSetup" ;print $0}}' $1 > ss.txt 

input.txt中

vaibhav 
gupta 
%%Page: (1) 1 
vaibhav 
gupta 
%%Page: (2) 2 
vaibhav 

運行:

./script.sh input.text 

輸出:

%%BeginPageSetup 
<< /Duplex 
%%Page: (1) 1 
%%BeginPageSetup 
%%Page: (2) 2 

輸出應該

vaibhav 
gupta 
%%BeginPageSetup 
<< /Duplex 
%%Page: (1) 1 
vaibhav 
gupta 
%%BeginPageSetup 
vaibhav 

像上面。

+1

請先格式化您的代碼。 – user1056837

+0

請閱讀[在什麼情況下我可以在我的問題中添加「緊急」或其他類似的短語,以獲得更快的答案?](https://meta.stackoverflow.com/q/326569) - 摘要是這樣的並不是解決志願者問題的理想方式,而且可能對獲得答案產生反作用。請不要將這添加到您的問題。 – halfer

回答

0

它打印你這AKS打印:

if ($1=="%%Page:" && $2=="(1)" && $3== "1") ... 
else if($1=="%%Page:" && $2=="(2)" && $3== "2") ... 

「如果第一場是%%Page:和第二和第三個字段是(1)1(2)2」。

貌似這個垃圾:

ffjfjfjfjfjdrrr 
gghhhhhh 

dhjdfhjfhjfdhj 
errrrrrrrre 

ryryryryryryry 

分類到關你編碼的要求。

爲了得到您的預期輸出,請在:}' $1 > ss.txt之前添加如下內容:else print

+0

我需要下面的輸出,請建議如何得到它 ffjfjfjfjfjdrrr gghhhhhh 「%% BeginPageSetup」 「\ n」 「<<」 「 」「/雙工 」「 」「 假 」「 」「/的MediaType 」「」 「(主)」 「 」「 >> 」「 」「 setpagedevice 」「 \ n 」個「 %% EndPageSetup 」「 \ n」 個 %%頁:(1)1個 dhjdfhjfhjfdhj errrrrrrrre 「%% BeginPageSetup」 % (2)2 ryryryryryryry – Vibhu

+0

請把這個額外的要求,原來的文章,它真的是難以理解的評論領域,因爲它缺乏所有換行符。 –

+0

抱歉不便:網站是制約我發佈新問題 我只是想在下面的輸出文件也行除了我滿足條件 ffjfjfjfjfjdrrr gghhhhhh dhjdfhjfhjfdhj errrrrrrrre ryryryryryryry – Vibhu