2016-07-06 78 views

回答

1
awk '/=/ {gsub(/^.*=/,""); print; next} !/=/ {print $3}' file 
variable 
2122 
till 
code 

解釋:

awk ' 
/=/ {    # if equals sign in the record 
    gsub(/^.*=/,"") # remove everything from the beginning to the = 
    print   # print it 
    next} 
{print $3}  # print the third field 
' file 

通過@karakfa和@ John1024每建議編輯。

+0

您好詹姆斯, @ 僞名= hdiskpower8 邏輯裝置ID = 2122 1 fscsi2 hdisk37 FA 10eB活性活着0 0 0爲fscsi0 hdisk13 FA 7EB活性活着0 0 以上是我想用打印的輸入數據awk ... 當我試圖運行你的命令模式時,它顯示錯誤(awk:致命:1作爲gsub的參數數量是無效的) – user2243341

+1

'$ 0〜'暗示你可以刪除它們並用'/ = /'和'!/ = /' – karakfa

+0

它爲我工作非常感謝... – user2243341

1

如果目標是打印等號後會發生什麼:

$ awk -F= '$2 {print $2}' file 
variable 
2122 

-F=告訴awk使用=作爲字段分隔符。因此,在第一個=上線之前的是第一個字段$1

$2 {print $2告訴awk打印第二個字段,如果第二個字段不爲空。

+0

嗨,約翰,謝謝......但在這裏,我想打印下一行字段編號2(直到)和下一行(代碼)以及。 – user2243341

+0

__till__和__code__看起來像是我的第三個領域。 –