标签: sort

排序和计算行出现的次数

我有Apache日志文件,access.log如何计算该文件中出现的行数?例如的结果cut -f 7 -d ' ' | cut -d '?' -f 1 | tr '[:upper:]' '[:lower:]'

a.php
b.php
a.php
c.php
d.php
b.php
a.php
Run Code Online (Sandbox Code Playgroud)

我想要的结果是:

3 a.php
2 b.php
1 d.php # order doesn't matter
1 c.php 
Run Code Online (Sandbox Code Playgroud)

command-line sort

253
推荐指数
4
解决办法
38万
查看次数

您如何按大小对 du 输出进行排序?

你如何du -sh /dir/*按大小排序?我读过一个网站说使用,| sort -n但这显然是不对的。这是一个错误的例子。

[~]# du -sh /var/* | sort -n
0       /var/mail
1.2M    /var/www
1.8M    /var/tmp
1.9G    /var/named
2.9M    /var/run
4.1G    /var/log
8.0K    /var/account
8.0K    /var/crash
8.0K    /var/cvs
8.0K    /var/games
8.0K    /var/local
8.0K    /var/nis
8.0K    /var/opt
8.0K    /var/preserve
8.0K    /var/racoon
12K     /var/aquota.user
12K     /var/portsentry
16K     /var/ftp
16K     /var/quota.user
20K     /var/yp
24K     /var/db
28K     /var/empty
32K     /var/lock
84K     /var/profiles
224M    /var/netenberg
235M    /var/cpanel
245M    /var/cache
620M    /var/lib
748K    /var/spool
Run Code Online (Sandbox Code Playgroud)

command-line disk-usage text-processing sort units

236
推荐指数
6
解决办法
24万
查看次数

根据第三列排序

我正面临一个巨大的 4 列文件。我想根据第 3 列在标准输出中显示排序的文件:

cat myFile | sort -u -k3
Run Code Online (Sandbox Code Playgroud)

这足以执行这个技巧吗?

sort files

182
推荐指数
4
解决办法
46万
查看次数

列出按数字排序的文件

我有一堆从log1log164.

我正在尝试在 UNIX 终端中列出目录(已排序),但排序功能仅提供如下格式:

home:logs Home$ ls -1 | sort
log1.gz
log10.gz
log100.gz
log101.gz
log102.gz
log103.gz
log104.gz
log105.gz
log106.gz
...etc
Run Code Online (Sandbox Code Playgroud)

我想要的是

home:logs Home$ ls -1 | sort
log1.gz
log2.gz
log3.gz
log4.gz
log5.gz
log6.gz
log7.gz
...{more here}
log99.gz
log100.gz
log101.gz
log102.gz
...etc
Run Code Online (Sandbox Code Playgroud)

我可以用来做什么的任何建议?

ls filenames sort numbering

172
推荐指数
6
解决办法
14万
查看次数

“sort -u”和“sort | uniq”有什么区别?

我在任何地方看到有人需要获得一个排序的、唯一的列表,他们总是通过管道传输到sort | uniq. 我从未见过有人使用的例子sort -u。为什么不?有什么区别,为什么使用 uniq 比使用 unique 标志进行排序更好?

bash sort uniq

149
推荐指数
5
解决办法
22万
查看次数

尝试对两个字段进行排序,然后是第二个

我正在尝试对多列进行排序。结果并不如预期。

这是我的数据(people.txt):

Simon Strange 62
Pete Brown 37
Mark Brown 46
Stefan Heinz 52
Tony Bedford 50
John Strange 51
Fred Bloggs 22
James Bedford 21
Emily Bedford 18
Ana Villamor 44
Alice Villamor 50
Francis Chepstow 56
Run Code Online (Sandbox Code Playgroud)

以下工作正常:

bash-3.2$ sort -k2 -k3 <people.txt                                                                                                                    
Emily Bedford 18                                                                                                                                      
James Bedford 21                                                                                                                                      
Tony Bedford 50                                                                                                                                       
Fred Bloggs 22                                                                                                                                        
Pete Brown 37                                                                                                                                         
Mark Brown 46                                                                                                                                         
Francis Chepstow 56                                                                                                                                   
Stefan Heinz 52                                                                                                                                       
John Strange 51                                                                                                                                       
Simon Strange 62                                                                                                                                      
Ana Villamor 44                                                                                                                                       
Alice Villamor 50 …
Run Code Online (Sandbox Code Playgroud)

sort

133
推荐指数
2
解决办法
19万
查看次数

通过管道到“sort”命令对“find -print0”的输出进行排序

我需要能够在将其输出find到命令之前按字母顺序对输出进行排序。进入| sort |之间不起作用,那我该怎么办?

find folder1 folder2 -name "*.txt" -print0 | xargs -0 myCommand
Run Code Online (Sandbox Code Playgroud)

shell find xargs sort

118
推荐指数
4
解决办法
16万
查看次数

sort 是否支持就地对文件进行排序,例如 `sed --in-place`?

我是盲人还是没有类似的--in-place选择sort

为了将结果保存到输入文件,sed 使用-i( --in-place)。

将输出重定向sort到输入文件

sort < f > f
Run Code Online (Sandbox Code Playgroud)

导致它为空。如果没有--in-place选择 - 也许有一些技巧可以方便地做到这一点?

(我唯一想到的是:

sort < f > /tmp/f$$ ; cat /tmp/f$$ > f ; rm /tmp/f$$
Run Code Online (Sandbox Code Playgroud)

移动不是正确的选择,因为可能会更改文件权限。这就是为什么我用临时文件的内容覆盖,然后将其删除。)

text-processing sort

108
推荐指数
4
解决办法
4万
查看次数

如何删除 .bash_history 中的重复项,保留顺序?

我真的很喜欢使用control+r递归搜索我的命令历史记录。我发现了一些我喜欢与它一起使用的好选择:

# ignore duplicate commands, ignore commands starting with a space
export HISTCONTROL=erasedups:ignorespace

# keep the last 5000 entries
export HISTSIZE=5000

# append to the history instead of overwriting (good for multiple connections)
shopt -s histappend
Run Code Online (Sandbox Code Playgroud)

对我来说唯一的问题是erasedups只删除连续的重复项 - 所以使用这串命令:

ls
cd ~
ls
Run Code Online (Sandbox Code Playgroud)

ls命令实际上将被记录两次。我想过定期使用 cron 运行:

cat .bash_history | sort | uniq > temp.txt
mv temp.txt .bash_history
Run Code Online (Sandbox Code Playgroud)

这将实现删除重复项,但不幸的是顺序不会被保留。如果我不先sort处理文件,我不相信uniq可以正常工作。

如何删除 .bash_history 中的重复项,保留顺序?

额外学分:

.bash_history通过脚本覆盖文件有什么问题吗?例如,如果您删除了一个 apache 日志文件,我认为您需要发送一个 nohup / reset 信号 …

command-line bash command-history sort uniq

82
推荐指数
6
解决办法
4万
查看次数

排序但保持标题行在顶部

我从一个程序中获取输出,该程序首先生成一行,即一堆列标题,然后是一堆数据行。我想剪切此输出的各个列并查看它根据各个列排序。在没有标题的情况下,通过-k选择与列sort一起cutawk查看列的子集,可以轻松完成剪切和排序。但是,这种排序方法将列标题与输出的其余行混合在一起。有没有一种简单的方法可以将标题保持在顶部?

text-processing sort table

78
推荐指数
5
解决办法
6万
查看次数