簡體   English   中英

如何從多行標准輸入中僅提取特定的字符串匹配行

[英]How to extract only specific string matching lines from a multiple lines standard input

我有一個從示例形式的另一個bash函數輸出中傳遞過來的標准輸入:

fruit=apple
dog=doberman
car=bmw
flower=tulip
---
fruit=orange
dog=corgy
car=ford
flower=rose
---

...如此反復數千次...

從這個重復的管道標准輸出中,我只想提取與諸如水果和汽車匹配的值,如下所示:

apple
bmw
---
orange
ford
---

如果sed / awk魔術可以以類似於csv表的格式輸出那些內容,那將更好,例如:

apple,bmw
orange,ford

我只有bash字符串輸入操作魔術方面的基礎知識,因此將不勝感激。

無需任何技巧-在輸入中看到值時將其保存在數組中,並在按下---行時將其打印出來:

$ awk -F'=' -v OFS=',' '/---/{print v["fruit"], v["car"]} {v[$1]=$2}' file
apple,bmw
orange,ford

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM