Linux 如何排序和忽略空格?
我正在尝试对文件进行排序,但无法得到想要的结果。 我有这个档案:Linux 如何排序和忽略空格?,linux,bash,shell,sorting,Linux,Bash,Shell,Sorting,我正在尝试对文件进行排序,但无法得到想要的结果。 我有这个档案: 742550111 aaa aaa aaa aaa aaa 2008 3 1 1 5816470687 aa a dissertation for the 933 2 2 2 每个字段由一个表格分隔,我想在第二列进行排序 当我尝试排序test.txt-t\t-k2时,输出与文件中的相同。 但我想要的结果是: 581647068
742550111 aaa aaa aaa aaa aaa 2008 3 1 1
5816470687 aa a dissertation for the 933 2 2 2
每个字段由一个表格分隔,我想在第二列进行排序
当我尝试排序test.txt-t\t-k2时,输出与文件中的相同。
但我想要的结果是:
5816470687 aa a dissertation for the 933 2 2 2
742550111 aaa aaa aaa aaa aaa 2008 3 1 1
我想那是因为sort忽略了单词之间的空格
所以我试着使用这个命令:LC_ALL=C sort test.txt-t\t-k2
,但它仍然不起作用
你有什么想法吗?Bash将
$'\t'
替换为一个真正的选项卡:
LC_ALL=C sort file -t $'\t' -k 2
输出:
5816470687 aa a dissertation for the 933 2 2 2
742550111 aaa aaa aaa aaa aaa 2008 3 1 1
5816470687 aa为933 2的学位论文
742550111 aaa 2008 3 1
Bash将
$'\t'
替换为一个真正的选项卡:
LC_ALL=C sort file -t $'\t' -k 2
输出:
5816470687 aa a dissertation for the 933 2 2 2
742550111 aaa aaa aaa aaa aaa 2008 3 1 1
5816470687 aa为933 2的学位论文
742550111 aaa 2008 3 1
sort
的手册页将file
显示为大纲下的最后一个参数,那么,如果它不是命令的最后一个参数,为什么要将它放在您所在的位置呢?我假设他/她使用了GNU sort。GNU排序可以处理它。是的,我把文件作为最后一个参数,这只是为了测试。我实际上在tri/small*中为X运行这个命令;do LC_ALL=C排序-t$'\t'-k2<$X>$X排序;完成
是的,我知道它可以处理;然而,展示正确的形式不是更好吗?这更像是一个反问。我在手册页后面写着,sort[option]…[file]…
,这对我来说更有意义。总之,“Bash”的+1将$'\t'
替换为一个真正的选项卡:“我发现这很有帮助。@user3439894:是的,我已经接管了一切,只更正了必要的内容。当我创建命令时,我将文件名放在末尾。sort
的手册页将file
显示为大纲下的最后一个参数,那么为什么要将它放在您已经放置的位置,如果它不是命令的最后一个参数呢?我假设他/她使用了GNU sort。GNU排序可以处理它。是的,我把文件作为最后一个参数,这只是为了测试。我实际上在tri/small*中为X运行这个命令;do LC_ALL=C排序-t$'\t'-k2<$X>$X排序;完成
是的,我知道它可以处理;然而,展示正确的形式不是更好吗?这更像是一个反问。我在手册页后面写着,sort[option]…[file]…
,这对我来说更有意义。总之,“Bash”的+1将$'\t'
替换为一个真正的选项卡:“我发现这很有帮助。@user3439894:是的,我已经接管了一切,只更正了必要的内容。创建命令时,我将文件名放在末尾。