Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何排序和忽略空格?_Linux_Bash_Shell_Sorting - Fatal编程技术网

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:是的,我已经接管了一切,只更正了必要的内容。创建命令时,我将文件名放在末尾。