2013-01-09 31 views
0

在Java中,META-INF/MANIFEST.MF文件具有最大行长度。除此之外,自动换行插入,在下一行的开头用空格信号,就像这样:展开Java清单文件fin bash

Manifest-Version: 1.0 
Export-Package: com.google.common.net;uses:="com.google.common.base,ja 
vax.annotation[file continues] 
Bundle-Name: Guava: Google Core Libraries for Java 

不幸的是,这使得它痛苦地在bash grepsed

你会如何解决它,使用bash,到这个?

Manifest-Version: 1.0 
Export-Package: com.google.common.net;uses:="com.google.common.base,javax.annotation[file continues] 
Bundle-Name: Guava: Google Core Libraries for Java 

我想尝试sed,但它只能在每行的基础上,我不能让tr正常工作的。

谢谢!

编辑:related question

回答

2

试试这个Perl的一行代码:

$ perl -0777 -wpe 's/\n //g' MANIFEST.MF 

它消除了一个断行后面加一个空格的每个实例。

+1

太棒了!这是诀窍,谢谢!由于windows生成的文件只有一个细节,您还需要删除\ r,使用:'perl -0777 -wpe's/\ r?\ n // g'MANIFEST.MF' – Miquel

+0

也为我工作,但我的MANIFEST.MF包含回车符,所以行被覆盖。 'perl ... | tr -d'\ r''为我做了诀窍。 –