同じ行にデータを印刷する[閉じる]

同じ行にデータを印刷する[閉じる]

次のコマンドを使用して、ファイルから2つの単語を検索しますgrep

grep  "ADDR|USCDB"  VLR.txt |awk -F" " '{print $3 " " $4}' > prueba.txt

出力は次のとおりです

2021-03-12 14:27:15
RESULT=VLR, ADDR="573025000022";%%
2021-03-12 14:27:15
RESULT=VLR, ADDR="573025000023";%%
2021-03-12 14:27:15
RESULT=VLR, ADDR="573025000024";%%

私が達成したいのは、日付と結果を同じ行に表示することです。

2021-03-12 14:27:15 RESULT=VLR, ADDR="573025000022";%%
2021-03-12 14:27:15 RESULT=VLR, ADDR="573025000023";%%
2021-03-12 14:27:15 RESULT=VLR, ADDR="573025000024";%%

ベストアンサー1

USCDB各行の前には常に次が付いているとしますADDR

awk '$2 == "USCDB" { date = $3 " " $4 } $4 ~ /^ADDR=/ { print date, $3, $4 }' input

date行が見つかるたびに、変数USCDBに日付が保存されます。行が見つかると、ADDRこの値はフィールド3と4と共に出力されます。

ADDRUSCDBまた、2つの文字列を一致させ、行全体で一致させるのではなく、特定のフィールドでのみ一致させることについても厳密です。

テストするデータがないため、コードはテストされていません(スクリーンショットがありましたが、今は失われました)。

おすすめ記事