[英]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.