Linux 命令确定文件中出现的字符

Linux 命令确定文件中出现的字符,linux,file,character,Linux,File,Character,我正在寻找一个Linux/UNIX命令,它将确定文件中的不同字符。字符计数会很好,但不是必需的。例如,如果我在包含此数据的文件上运行命令 This is my data file. …它会给我这个作为输出 T h i s m y d a t f l e . …或者更好的是,这个 T:1 h:1 i:3 s:2 m:1 y:1 d:1 a:2 t:1 f:1 l:1 e:1 .:1 在输出中,字符的顺序无关紧要,字符之间是否用空格、制表符、行等分隔也无关紧要。我不知道有哪个unix命令可以做

我正在寻找一个Linux/UNIX命令,它将确定文件中的不同字符。字符计数会很好,但不是必需的。例如,如果我在包含此数据的文件上运行命令

This is
my data
file.
…它会给我这个作为输出

T h i s m y d a t f l e .
…或者更好的是,这个

T:1 h:1 i:3 s:2 m:1 y:1 d:1 a:2 t:1 f:1 l:1 e:1 .:1

在输出中,字符的顺序无关紧要,字符之间是否用空格、制表符、行等分隔也无关紧要。

我不知道有哪个unix命令可以做到这一点,但可以通过一个小python脚本获得所需的内容

#!/usr/bin/env python

import collections, sys
d = collections.defaultdict(int)
for line in sys.stdin:
    for c in line:
        d[c] += 1
print dict(d)
将给出结果

{'a': 2, ' ': 2, 'e': 1, 'd': 1, 'f': 1, 'i': 3, 'h': 1, '\n': 2, 'm': 1, 'l': 1, '.': 1, 's': 2, 'T': 1, 'y': 1, 't': 1}

我不知道有哪条unix命令可以做到这一点,但可以通过一个小python脚本获得您想要的

#!/usr/bin/env python

import collections, sys
d = collections.defaultdict(int)
for line in sys.stdin:
    for c in line:
        d[c] += 1
print dict(d)
将给出结果

{'a': 2, ' ': 2, 'e': 1, 'd': 1, 'f': 1, 'i': 3, 'h': 1, '\n': 2, 'm': 1, 'l': 1, '.': 1, 's': 2, 'T': 1, 'y': 1, 't': 1}

要打印唯一字符,请执行以下操作:

$ grep -o . file | sort -u | tr -d '\n'
 .Tadefhilmsty
要计算每个字符的出现次数,请执行以下操作:

$ grep -o . file | sort | uniq -c
      2
      1 .
      1 T
      2 a
      1 d
      1 e
      1 f
      1 h
      3 i
      1 l
      1 m
      2 s
      1 t
      1 y

我将把格式留给您。

要打印唯一字符:

$ grep -o . file | sort -u | tr -d '\n'
 .Tadefhilmsty
要计算每个字符的出现次数,请执行以下操作:

$ grep -o . file | sort | uniq -c
      2
      1 .
      1 T
      2 a
      1 d
      1 e
      1 f
      1 h
      3 i
      1 l
      1 m
      2 s
      1 t
      1 y

我将把格式留给您。

是否愿意解释为什么您认为这不属于这里?是否愿意解释为什么您认为这不属于这里?+1这比公认的解决方案快,这对大文件有很大影响。+1这比公认的解决方案快,对大文件有很大影响。