perl grep用回车替换垂直选项卡

时间:2014-03-11 22:14:39

标签: perl grep

希望这个很容易,但它正在躲避我。

我想在我的文件

中用回车符(char 13)替换垂直制表符(char 11)

(我从Filemaker导出,它将字段中的回车符转换为垂直制表符)

我认为这样可行,但事实并非如此:

/usr/bin/perl -i -pe 's/\\011/\\013/g' foo.txt

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:2)

regexp中的双反斜杠匹配输入中的单个反斜杠。您正在用4个字符的序列\011替换文字4个字符的字符串\013。如果您的输入包含实际的垂直制表符,而不是它们的反斜杠 - 八进制表示,则应该加倍模式中的反斜杠。

答案 1 :(得分:1)

或者使用tr:

mv foo.txt foo.txt.bak
tr '\v' '\r' <foo.txt.bak >foo.txt

答案 2 :(得分:0)

如果你对perl以外的解决方案持开放态度,你可以使用sed:

sed -i "s/|/\n/" foo.txt