Awk
如何使用 SED 或其他命令在第二行匹配中添加列?
我有以下幾行來自
zcat
命令1 - URL Template: https://www.test.com 2 - Response: <200 OK,{Server=[nginx], Date=[Wed, 11 May 2022 01:05:06 GMT], Content-Type=[text/html; charset=UTF-8], Transfer-Encoding=[chunked], Connection=[keep-alive], Vary=[Accept-Encoding]}>
我想像這樣將呼叫的第 2 行結果添加到第 1 行
URL Template: https://www.test.com <200 OK,{Server=[nginx], Date=[Wed, 11 May 2022 01:05:06 GMT], Content-Type=[text/html; charset=UTF-8], Transfer-Encoding=[chunked], Connection=[keep-alive], Vary=[Accept-Encoding]}>
我可以這樣做嗎?
awk
簡單的命令怎麼樣:$ awk -F "1 - |2 - Response:" 'NF>1 {printf "%s",$2} END{print ""}' input_file URL Template: https://www.test.com <200 OK,{Server=[nginx], Date=[Wed, 11 May 2022 01:05:06 GMT], Content-Type=[text/html; charset=UTF-8], Transfer-Encoding=[chunked], Connection=[keep-alive], Vary=[Accept-Encoding]}>
它通過忽略空行來處理它們。
它假設:
- 你的兩個非空行總是以固定的順序出現,即先
1 - URL Template: ...
然後2 - Response: ...
。- 您顯示的兩行之間不會出現其他非空行。如果不是這樣,則需要額外的邏輯。這樣的改變將是直截了當的。
- 兩個字元串“1 -”和“2 - Response:”中的每一個在每行僅出現一次,並且在它們的開頭出現。