2012-03-02 56 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