次のように私の入力がある: -バッシュスクリプト各行の異なるフィールドを印刷する
テスト=可変
テストID = 2122
1ハローあなたまでアクティブ
2このコード機能3
そして、私は以下のような出力が必要: -
variabl
次のように私の入力がある: -バッシュスクリプト各行の異なるフィールドを印刷する
テスト=可変
テストID = 2122
1ハローあなたまでアクティブ
2このコード機能3
そして、私は以下のような出力が必要: -
variabl
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
を。
こんにちはジェームズ、 疑似名@ = hdiskpower8 論理デバイスID = 2122 1 fscsi2 hdisk37 FA 10eBアクティブ生き0 0 0 fscsi0 hdisk13 FA 7EBアクティブ生き上記0 0 は私が使用して印刷したい入力データでありますawk ... コマンドパターンを実行しようとしたときにエラーが表示される(awk:fatal:1はgsubの引数の数として無効です) – user2243341
'$ 0〜'はそれらを削除して '/ =/'と'!/ =/' – karakfa
それは私に多くの感謝のために働いた... – user2243341
まで電子
目標は、等号の後に来るものに印刷する場合:
$ awk -F= '$2 {print $2}' file
variable
2122
-F=
は、フィールドセパレータとして=
を使用するためにはawkに指示します。したがって、最初の=
の前に来るのは、最初のフィールド$1
です。
$2 {print $2
2番目のフィールドが空でない場合、2番目のフィールドを出力するようにawkに指示します。
こんにちはJohnさん、ありがとうございました...しかし、ここでは次の行のフィールド番号2(まで)と次の行(コード)も印刷したいと考えています。 – user2243341
__till__と__code__は私にとって3番目のフィールドのようです。 –
これはパズルですか?それを説明するために少なくとも "試してください"。 – karakfa