次の行を取得するとしましょう。
[duration] => 92
[from] => 18884541236
[to] => 17841234568
私が望むのは、ファイル全体を検索して[送信者]番号が[受信者]番号と同じインスタンスを確認することです。
だから、次のような項目があれば
[duration] => 43
[from] => 17873332222
[to] => 17873332222
次の行では、[from]番号の直後に同じ[to]番号が続く場所をファイルから検索できます。
ベストアンサー1
[to]
このコマンドは、行番号と最初のフィールドを持ち、3番目のフィールドが最後に表示された値と同じ行の内容を印刷します[from]
。
awk '{ if($1=="[from]"){from=$3} } $1=="[to]" && $3==from{print NR,$0}' file
このファイルを入力として使用します。
[duration] => 92
[from] => 18884541236
[to] => 17841234568
[duration] => 43
[from] => 17873332222
[to] => 17873332222
次の結果が表示されます。
$ awk '{ if($1=="[from]"){from=$3} } $1=="[to]" && $3==from{print NR,$0}' file
6 [to] => 17873332222