2012-03-02 28 views
-1

如何通过删除带有字符和奇数字符的行的最后一个字符来确保每行都具有偶数个字符。Unix编程

我试过,但它不工作 的sed -n“/^.{}/p”

请帮助

+0

您可以简单地截断所有行的长度为零。那会很容易。 – 2012-03-02 21:40:07

回答

2

你要算新行?换句话说,行“foo \ n”有4个字符还是3个?假设你要截断该线后的“o”,你可以这样做:

 
$ perl -pe 'substr($_, -2, 1) = "" unless length($_) % 2' 

而且强制性AWK解决方案:

 
awk '{ print substr($0, 0, length - length % 2)}' 
+0

太棒了!谢谢 – toky 2012-03-02 22:04:12

3

我不知道这是最简单的方法,但第一想到的是

sed '/^\(..\)*.$/s/.$//' 

/^\(..\)*.$/发现线具有奇数数量的字符。以下s命令仅对这些行起作用。 s/.$//删除它所作用的每一行的最后一个字符(具有奇数个字符的那一行)。

+0

这很好.... – 2012-03-02 22:11:32

+0

谢谢你的帮助 – toky 2012-03-02 22:22:26