Questions tagged «sort»

对文本文件或其他数据进行排序,例如使用sort实用程序。

3
用管道“ |”对未排序的行进行排序 正确地
我正在尝试对一些简单的以竖线分隔的数据进行排序。但是,排序实际上不是排序。它将标题行移到底部,但我的两行以241开始被行以24开头的行分隔。 cat sort_fail.csv column_a|column_b|column_c 241|212|20810378 24|121|2810172 241|213|20810376 sort sort_fail.csv 241|212|20810378 24|121|2810172 241|213|20810376 column_a|column_b|column_c 列标题被移到文件的底部,因此排序显然可以对其进行处理。但是,实际值并没有按照我的期望进行排序。 在这种情况下,我与 sort sort_fail.csv --field-separator='|' -k1,1 但是,我觉得那不是必须的。为什么排序不排序?
17 sort 

4
按日期排序
原版的: 2011年1月23日10:42有些事情2007.12.20.avi 2009年6月26日某事2009.06.25.avi 2010年2月12日有些东西2010.02.11.avi 2011年1月29日09:17有些事情2011.01.27.avi 2011年2月11日20:06某事2011.02.10.avi 2011年2月27日23:05某事2011.02.24.avi 输出: 2011年2月27日23:05某事2011.02.24.avi 2011年2月11日20:06某事2011.02.10.avi 2011年1月29日09:17有些事情2011.01.27.avi 2011年1月23日10:42有些事情2007.12.20.avi 2010年2月12日有些东西2010.02.11.avi 2009年6月26日某事2009.06.25.avi 我使用以下命令生成了上面的列表(原始): ls -A -lR | grep "^-" | sed "s/.\{43\}/&\n/" | grep -v "^-" | while read ONELINE; do if echo $ONELINE | cut -d " " -f3 | grep -o '[0-9][0-9]:[0-9][0-9]' > /dev/null 2>&1; then …
17 sort  busybox 


2
删除大单词列表中重复项的最快方法?
我需要对大型单词表进行重复数据删除。我尝试了几个命令,并在此处和此处进行了一些研究,他们解释说,最快的重复数据删除单词列表的方法似乎是使用awk。 awk-> O(n)吗?排序-> O(n log n)? 但是我发现这似乎是不正确的。这是我的测试结果: sort -u input.txt -o output.txt 真实的0m12.446s 用户0m11.347s sys 0m0.906s awk '!x[$0]++' input.txt > output.txt 真实的0m47.221s 用户0m45.419s sys 0m1.260s 因此,使用sort -u快3.7倍。为什么是这样?有没有更快的方法来进行重复数据删除? ***********更新******** 正如有人在评论中指出的那样,可能是我的词表已在某种程度上被排序。为了排除这种可能性,我使用此python脚本生成了两个单词表。 列表1 = 7 Mb 列表2 = 690 Mb 结果AWK: List1 实数0m1.643s 用户0m1.565s sys 0m0.062s List2 实际2m6.918s 用户2m4.499s sys 0m1.345s 结果排序: List1 …
14 bash  awk  performance  sort 

4
按每行字数对行进行排序
给定输入: hello: world foo bar baz bar: baz: bin boop bop fiz bang beep bap: bim bam bop boatkeeper: poughkeepsie 我想将其排序为顶部的大多数单词,至少是末尾的单词,如下所示: baz: bin boop bop fiz bang beep hello: world foo bar baz bap: bim bam bop boatkeeper: poughkeepsie bar: 我将如何使用sort其他工具执行此操作?

5
排序find -exec ls的输出
是否可以find … -exec ls -ls ;按文件名按字母顺序对输出进行排序? 这是我的cron命令: find /home/setefgge/public_html -type f -ctime -1 -exec ls -ls {} \; 这个命令在大多数情况下都可以。但是结果没有按照任何有意义的顺序排序。如果将它们按文件名字段进行排序将非常有帮助。
14 find  ls  sort 

4
按十六进制值排序
使用coreutils sort,如何按十六进制值(字段)对数字进行排序?我期待着一些类似的事情 sort -k3,3x file_to_sort 但是,这样的x不存在。 编辑:到目前为止,我想出的最佳解决方案是: { echo ibase=16; cut -d' ' -f3 file_to_sort; } | bc | paste -d: - file_to_sort | sort -t: -k1,1n | cut -d: -f2- 其中cut -d' ' -f3隔离搜索字段(这是-k3,3-这可能会有所不同,当然),和bc不转换为十进制(需要大写十六进制,没有0x前缀,匹配我的情况)。然后,我加入,排序和拆分列。
14 sort  coreutils 

5
一行多行排序文本文件
我有一个这种格式的文本文件: #################################### KEY2 VAL21 VAL22 VAL23 VAL24 #################################### KEY1 VAL11 VAL12 VAL13 VAL14 #################################### KEY3 VAL31 VAL32 VAL33 VAL34 我想按KEY行对该文件排序,并在结果中保留下4行,因此排序结果应为: #################################### KEY1 VAL11 VAL12 VAL13 VAL14 #################################### KEY2 VAL21 VAL22 VAL23 VAL24 #################################### KEY3 VAL31 VAL32 VAL33 VAL34 有没有办法做到这一点 ?

1
按第一列然后第二列对文件进行排序
如何通过按第二列的第一个元素排序来处理两列制表符分隔的文本文件(仅当第一列元素相同时)? 范例: 输入文件1 A 1-2 A 6-8 A 3-4 B 7-10 B 5-9 预期输出:文件2 A 1-2 A 3-4 A 6-8 B 5-9 B 7-10
13 sort 


2
按列排序输出
我想接受这个命令find -maxdepth 1 -type d | while read -r dir; do printf "%s:\t" "$dir"; find "$dir" | wc -l; done(从这里开始)。其输出基本上是 ./kennel: 11062 ./shadow: 15449 ./ccc: 9765 ./journeyo: 14200 ./norths: 10710 并按最大到最小的数字对其进行排序。但我不确定如何制作sort,或在其他专栏中进行任何操作。

7
如何对.bib文件中的BibTex条目进行排序(按任何键)?
我使用LaTeX,并使用Gi​​t进行版本控制。对于书目管理,我使用Mendeley。 问题在于,每次Mendeley同步其.bib出口时,它们的输出顺序都不同,这使书目版本控制变得更加困难。 我的想法是.bib每次提交前对文件中的BibTex条目进行排序。 您能帮我吗,如何以灵巧(简短)的方式做到这一点?:) PS我可以手动运行此例程。我不需要git集成。我只希望程序/脚本对.bib文件进行排序。

7
join:“文件2排序不正确”
我有两个文件_jeter3.txt和_jeter1.txt 我检查了它们都在第20列上使用 sort -c sort -t ' ' -c -k20,20 _jeter3.txt sort -t ' ' -c -k20,20 _jeter1.txt #no errors 但是当我要join两个文件都出现错误时,它说第二个文件未排序: join -t ' ' -1 20 -2 20 _jeter1.txt _jeter3.txt > /dev/null join: File 2 is not in sorted order 我不明白为什么。 cat /etc/*-release #FYI openSUSE 11.0 (i586) VERSION = …
13 sort  join 

6
对行块进行排序
我有一个包含4n行的文件。这是其中的摘录,包含8行 6115 8.88443 6116 6.61875 6118 16.5949 6117 19.4129 6116 6.619 6117 16.5979 6118 19.4111 6115 8.88433 我想要做的是对一个块进行排序,其中每个块均基于第一列包含4行。摘录的输出应如下所示。 6115 8.88443 6116 6.61875 6117 19.4129 6118 16.5949 6115 8.88433 6116 6.619 6117 16.5979 6118 19.4111

4
随机随机播放文件,但有一些其他限制
我的音乐播放列表很庞大,虽然有些歌手有很多专辑,但有些歌手只有一首歌。我想对播放列表进行排序,以使同一位艺术家不会连续播放两次,或者他的歌曲大部分不会出现在播放列表的开头或结尾。 播放清单范例: $ cat /tmp/playlist.m3u Anna A. - Song 1 Anna A. - Song 2 I--Rock - Song 1 John B. - Song 1 John B. - Song 2 John B. - Song 3 John B. - Song 4 John B. - Song 5 Kyle C. - Song 1 U--Rock …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.