Shell-Script

如何選擇性地連接以模式開頭的線條

  • December 18, 2020

這篇文章可以看作是對前一篇文章的跟進

這是輸入文件:

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}'

引用自:https://unix.stackexchange.com/questions/625148