2016-07-06 9 views

答えて

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

を説明:@karakfaでとJohn1024 @アドバイス当たりに編集

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 

を。

+0

こんにちはジェームズ、 疑似名@ = hdiskpower8 論理デバイスID = 2122 1 fscsi2 hdisk37 FA 10eBアクティブ生き0 0 0 fscsi0 hdisk13 FA 7EBアクティブ生き上記0 0 は私が使用して印刷したい入力データでありますawk ... コマンドパターンを実行しようとしたときにエラーが表示される(awk:fatal:1はgsubの引数の数として無効です) – user2243341

+1

'$ 0〜'はそれらを削除して '/ =/'と'!/ =/' – karakfa

+0

それは私に多くの感謝のために働いた... – user2243341

1

まで電子

目標は、等号の後に来るものに印刷する場合:

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

-F=は、フィールドセパレータとして=を使用するためにはawkに指示します。したがって、最初の=の前に来るのは、最初のフィールド$1です。

$2 {print $2 2番目のフィールドが空でない場合、2番目のフィールドを出力するようにawkに指示します。

+0

こんにちはJohnさん、ありがとうございました...しかし、ここでは次の行のフィールド番号2(まで)と次の行(コード)も印刷したいと考えています。 – user2243341

+0

__till__と__code__は私にとって3番目のフィールドのようです。 –

関連する問題