我有一个纯文本文件,其中换行符不是"\n"
特殊字符。
现在我想对这个文件进行排序。
sort
使用 unix命令时是否有直接指定自定义换行符的方法?我不想尽可能为此使用脚本?
请注意文本文件中的数据有\n
、\r\n
和\t
字符(此类数据的原因是特定于应用程序的,因此请不要对此发表评论)。
样本数据如下:
1111\n1111<Ctrl+A>
2222\t2222<Ctrl+A>
3333333<Ctrl+A>
这Ctrl+A
是换行符。
我有一个纯文本文件,其中换行符不是"\n"
特殊字符。
现在我想对这个文件进行排序。
sort
使用 unix命令时是否有直接指定自定义换行符的方法?我不想尽可能为此使用脚本?
请注意文本文件中的数据有\n
、\r\n
和\t
字符(此类数据的原因是特定于应用程序的,因此请不要对此发表评论)。
样本数据如下:
1111\n1111<Ctrl+A>
2222\t2222<Ctrl+A>
3333333<Ctrl+A>
这Ctrl+A
是换行符。
用于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
. 请注意,使用此快捷方式时,它必须是单个代码点,而不是字符串。有一些方法可以处理字符串,甚至涉及无限多代码的正则表达式。