如何有选择地连接以模式开头的行

如何有选择地连接以模式开头的行

这篇文章可能被视为上一篇文章的后续

这是输入文件:

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:

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

相关内容