文件名中出现部分的排序和带有“ ls”的计数]

问题描述 投票:0回答:1

我想计算ls时文件名部分出现的次数。

例如,如果我的目录包含以下文件:

apple.cool_test1
banana.cool_test1
banana.cool_test2
cherry.cool_test1
cherry.cool_test2
cherry.cool_test3

我想要这样的结果:

1 apple 
2 banana
3 cherry

所以我尝试了"ls | sort | uniq -c",但是如何提取文件名的第一部分。我的记录分隔符可以是“。” ?

bash sorting unix ls uniq
1个回答
0
投票

尝试一下这种方式:

$  awk -F'.' '{a[$1]++}END{for(x in a)print a[x],x}' file  
1 apple
2 banana
3 cherry

0
投票

您可以用cutawk提取第一部分:

$ printf '%s\n' * | cut -d'.' -f1 | uniq -c
      1 apple
      2 banana
      3 cherry
$ printf '%s\n' * | awk -F'.' '{print $1}' | uniq -c
      1 apple
      2 banana
      3 cherry
© www.soinside.com 2019 - 2024. All rights reserved.