4

我有一个纯文本文件,其中换行符不是"\n"特殊字符。

现在我想对这个文件进行排序。

sort使用 unix命令时是否有直接指定自定义换行符的方法?我不想尽可能为此使用脚本?

请注意文本文件中的数据有\n\r\n\t字符(此类数据的原因是特定于应用程序的,因此请不要对此发表评论)。

样本数据如下:

1111\n1111<Ctrl+A>
2222\t2222<Ctrl+A>
3333333<Ctrl+A>

Ctrl+A是换行符。

4

1 回答 1

3

用于perl -001e 'print sort <>'执行此操作:

prompt$ cat -tv /tmp/a
2222^I2222^A3333333^A1111
1111^A

prompt$ perl -001e 'print sort <>' /tmp/a | cat -tv    
1111
1111^A2222^I2222^A3333333^Aprompt$  

之所以有效,是因为字符 001(八进制 1)是 control-A ( "\cA"),它是您在此数据集中的记录终止符。

您还可以使用-0xHHHHH. 请注意,使用此快捷方式时,它必须是单个代码点,而不是字符串。有一些方法可以处理字符串,甚至涉及无限多代码的正则表达式。

于 2012-08-02T13:34:27.387 回答