Shell-Script
如何選擇性地連接以模式開頭的線條
這篇文章可以看作是對前一篇文章的跟進。
這是輸入文件:
module ABC x(a,b,c) module DEFG y(d,e,f, g,h,i) module HIJKL z(j,k,l)
輸出文件應該是:
module ABC x(a,b,c) module DEFG y(d,e,f, g,h,i) module HIJKL z(j,k,l)
我嘗試在引用的文章中提供的解決方案中使用星號作為萬用字元,但它沒有按預期工作。
附錄 經過仔細檢查,我發現確實這些解決方案也為我提供了早期的工作(正如@steeldriver 所指出的那樣)。問題是該文件來自 DOS/Windows 平台,並且
^M
在輸出中插入了一個意想不到的字元,這對我來說搞亂了下線處理。我現在已經在輸入文件上執行了 dos2unix 並且問題已經消失(即以前的解決方案也適用於我)。我建議將此文章作為重複而關閉。
這是使用awk的解決方案:
awk '{if ($0 ~ /^module/) {ORS=""} else {ORS="\r\n"} ; print}'