パターンで始まる行を選択的に連結する方法 [重複]

パターンで始まる行を選択的に連結する方法 [重複]

この記事は次のように表示されます。前の記事のフォローアップ

入力ファイルは次のとおりです。

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を実行しましたが、問題は消えました(つまり、以前のソリューションも私にとって効果的でした)。

重複しているため、この投稿を閉じることをお勧めします。

答え1

以下は、以下を使用するソリューションです。アッ:

awk '{if ($0 ~ /^module/) {ORS=""}  else {ORS="\r\n"} ; print}'

関連情報