Questions tagged «sort»

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

2
Grep从固定文本开始,直到第一个空白行
我有一个prova.txt像这样的文件: Start to grab from here: 1 fix1 fix2 fix3 fix4 random1 random2 random3 random4 extra1 extra2 bla Start to grab from here: 2 fix1 fix2 fix3 fix4 random1546 random2561 extra2 bla bla Start to grab from here: 1 fix1 fix2 fix3 fix4 random1 random22131 我需要从“开始抢在这里”到第一个空白行。输出应如下所示: Start to grab from …

4
计算每个IP地址出现在日志文件中的次数
我有一个格式如下的文件: $ cat file.txt 27.33.65.2 27.33.65.2 58.161.137.7 121.50.198.5 184.173.187.1 184.173.187.1 184.173.187.1 将文件解析file.txt为以下格式的最佳方法是: 27.33.65.2: 2 58.161.137.7: 1 121.50.198.5: 1 184.173.187.1: 3 换句话说,我想遍历文件并计算每个IP地址出现的次数。我已经运行了它,sort因此所有IP地址都井井有条,彼此紧紧相连。
9 awk  sort 

2
comm:文件未排序
我曾经comm比较两个排序的文件。这些文件中的每一行都是正整数。但是结果显示 comm: file 1 is not in sorted order comm: file 2 is not in sorted order 即使对这两个文件进行了排序,也会出现错误?

3
如何在单个目录中查找子目录中的文件并按文件名对它们进行排序?
使用进行正常查找的结果find . ! -path "./build*" -name "*.txt": ./tool/001-sub.txt ./tool/000-main.txt ./zo/001-int.txt ./zo/id/002-and.txt ./as/002-mod.txt 以及何时排序sort -n: ./as/002-mod.txt ./tool/000-main.txt ./tool/001-sub.txt ./zo/001-int.txt ./zo/id/002-and.txt 但是所需的输出是: ./tool/000-main.txt ./zo/001-int.txt ./tool/001-sub.txt ./zo/id/002-and.txt ./as/002-mod.txt 这意味着输出仅基于文件名排序,但是文件夹信息应作为输出的一部分进行维护。 编辑:使示例更加复杂,因为子目录结构可能包含多个层次。
9 find  filenames  sort 

5
排序文件的一部分
是否可以在大文件中的两个字符串之间排序? 例如,当前文件为: 0cf Front Brake 0d0 Rear Brake 0ce Handle Bars HUT 03 VR Controls 009 Vest 001 Belt 002 Body Suit 020 Stereo Enable 003 Flexor 007 Hand Tracker 004 Glove 006 Head Mounted Display 008 Oculometer 00a Animatronic Device 000 Unidentified 021 Display Enable 005 Head Tracker HUT …
8 sort 

8
按文件的基本名称对文件的路径名数组进行排序
假设我有存储在数组中的文件的路径名列表 filearray=("dir1/0010.pdf" "dir2/0003.pdf" "dir3/0040.pdf" ) 我想根据文件名的基本名称以数字顺序对数组中的元素进行排序 sortedfilearray=("dir2/0003.pdf" "dir1/0010.pdf" "dir3/0040.pdf") 我怎样才能做到这一点? 我只能对它们的基本名称部分进行排序: basenames=() for file in "${filearray[@]}" do filename=${file##*/} basenames+=(${filename%.*}) done sortedbasenamearr=($(printf '%s\n' "${basenames[@]}" | sort -n)) 我在想 创建一个关联数组,其键是基名,值是路径名,因此对路径名的访问总是通过基名完成的。 仅为基名创建另一个数组,然后将其应用于基sort名数组。 谢谢。
8 bash  filenames  sort  array 

5
使用排序将文件名中的单词按字母顺序排序?
在阅读有关bash中的批量重命名文件的教程并使用sort命令对文件内容进行排序时,我还无法弄清楚如何将两者结合起来。 我有一个目录,该目录的内容使用文件名中的标签进行排序,类似于TagSpaces程序处理事物的方式。创建或下载文件名时,我会在文件名的末尾添加任何我能想到的标签。这是一个例子: Sunrise (2) #wallpaper #4k #googleimages.jpg 现在,我想浏览所有这些文件并重命名它们,以便标签按字母顺序排序,而不会影响标签之前或之后的任何内容(例如,图片的标题或文件扩展名)。因此,以上内容将变为: Sunrise (2) #4k #googleimages #wallpaper.jpg 我该如何完成?我什至不知道如何将文件名而不是其内容传递给类似的命令sort,然后可以将其输出传递给mv。
8 bash  rename  sort 

5
有效地合并/排序/唯一的大量文本文件
我正在尝试天真: $ cat * | sort -u > /tmp/bla.txt 失败与: -bash: /bin/cat: Argument list too long 因此,为了避免一个愚蠢的解决方案(创建一个巨大的临时文件): $ find . -type f -exec cat {} >> /tmp/unsorted.txt \; $ cat /tmp/unsorted.txt | sort -u > /tmp/bla.txt 我虽然可以使用文件一个一个地处理文件(这样可以减少内存消耗,并且更接近流传输机制): $ cat proc.sh #!/bin/sh old=/tmp/old.txt tmp=/tmp/tmp.txt cat $old "$1" | sort -u > …
8 shell  sort  uniq 

2
为什么非数字记录在排序后显示为“ 0”?
我想根据文件名中的数字对文件进行排序。这些是文件: $ ls *.f 0.f 13.f 1.f 22.f 4.f abc.f 排序结果: $ ls *.f | sort -t. -k1n 0.f abc.f # note this file! 1.f 4.f 13.f 22.f 我所期望的是: $ ls *.f | sort -t. -k1n abc.f 0.f 1.f 4.f 13.f 22.f 为什么abc.f只在之后0.f和之前显示1.f?是因为0不被数字处理sort吗?我在网上搜索,没有找到任何参考。
8 sort 

2
对括号中带整数且无空格的文件进行排序
我正在尝试对这样的文件进行排序(这是子例程名称的列表) cfn=(1370) __lib_file_MOD_file_open fn=(1368) __universe_MOD_general_boot fn=(916) __universe_MOD_general_main fn=(6142) __grid_var_MOD_get_overlap ... 根据括号内的整数。我首先尝试排序命令为 sort -t '=' -k 2 routine_list.txt 但随后fn =(916)出现在输出的末尾。 fn=(1368) __universe_MOD_general_boot cfn=(1370) __lib_file_MOD_file_open fn=(6142) __grid_var_MOD_get_overlap ... fn=(916) __universe_MOD_general_main 但我希望数字按升序排序(916-> 1368-> 1370-> ...)是否可以使用几个命令或选项相对简单地完成此操作?
8 files  sort 

3
Linux中最快的`uniq`工具
我的文本文件很大(1.5 G), 我想知道Linux中最快,更可靠的工具是什么。 我通常使用: awk '!x[$0]++' file.txt 但是当我使用htop命令时,我看到我的内存使用量正在增加。 我想知道什么是处理大型文件最快,更可靠的方法。 uniq? sort? sed? awk? 为什么?
8 sed  awk  memory  sort  uniq 

5
连续段落的分组排序(由空行分隔)?
我认为我现在在按列排序方面很有经验;但是,到目前为止,我还没有找到如何对连续行进行排序的任何方法。 假设我们有一个文本文件,如下所示:(当然,非常简化) Echo Alpha Delta Charlie Golf Bravo Hotel Foxtrot 现在,是否可以对每个块分别按字母数字顺序对行进行排序?我的意思是说,结果是这样的: Alpha Charlie Delta Echo Bravo Foxtrot Golf Hotel 从我在sort手册页中找到的内容来看,使用内置的UNIX sort命令可能无法做到这一点。还是可以不必借助外部/第三方工具来完成?

2
按修改时间对文件排序
我在这里看到了许多问题和答案,它们使用的构造类似于 list_dir=`ls -t /path/to/dir/` for i in $list_dir; do 要么 ls -t | while read i; do 现在,我知道您不应该在脚本中使用ls,因为它很容易损坏;但我找不到从上次修改到最近修改(反之亦然)的顺序处理文件的更好方法。 我可以使用类似: find . -type f -printf '%T@ %p\n' | sort -n | cut -d ' ' -f 2- | while read i; do... ...但是这仍然会与名称中包含换行符的任何文件一起中断,并且引导起来要难看得多。有没有更好的办法?

5
UNIX实用程序的智能程度如何?
Unix实用程序,例如sort,find,grep,diff等非常易于执行快速任务,有时甚至根本不需要编写任何代码。 我想知道它们在内部使用什么算法,以及如何智能地为特定任务确定特定算法?例如,如果sort得到一个巨大的输入文件,是否会对不同的数据大小使用不同的算法? grep在搜索不同数据集时是否智能切换算法?

1
根据第二列排序,并从最高到最低列出
TGAAACATGCCTTTCACCTCCTGCCATGATTGTGAGGCCT 2 GTGTTGCCCAGGTTGGTTTCAAACTCAGCTCAAGTGATCT 1 GAGACTCCTTCAGGAGACTGGTCCCCTGTCCTCGCCTCTC 3 CATGTTCTCCTGGAAGCCATGTGAGGAAGGCACATCATGG 8 AAGGACATAATCTCATTACTTTTATGGCCGCATAGTATTC 4 AGAGGCAGTGTAAGTGAGGTAGTTGAAAGTATGGACTCTG 2 我想使用第二列将行从最高编号重新排列到最低编号 预期产量 CATGTTCTCCTGGAAGCCATGTGAGGAAGGCACATCATGG 8 AAGGACATAATCTCATTACTTTTATGGCCGCATAGTATTC 4 GAGACTCCTTCAGGAGACTGGTCCCCTGTCCTCGCCTCTC 3 AGAGGCAGTGTAAGTGAGGTAGTTGAAAGTATGGACTCTG 2 TGAAACATGCCTTTCACCTCCTGCCATGATTGTGAGGCCT 2 GTGTTGCCCAGGTTGGTTTCAAACTCAGCTCAAGTGATCT 1
-1 awk  python  sort  bioinformatics  r 
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.