用于列出文本文件中所有不同字符的脚本

Jac*_*kWM 7 bash awk sed

例如

给定一个文件input.txt,其中包含以下内容:

He likes cats, really?
Run Code Online (Sandbox Code Playgroud)

输出将是:

H
e

l
i
k
s
c
a
t
,
r
l
y
?
Run Code Online (Sandbox Code Playgroud)

请注意输出中字符的顺序无关紧要.

cni*_*tar 11

怎么样:

echo "He likes cats, really?" | fold -w1 | sort -u
Run Code Online (Sandbox Code Playgroud)

  • 不幸的是,对于 UTF-8 中的两字节字符,“fold”不能按预期工作。它产生这些字符,而不是所需的字符。大概是因为它将这些角色分成两部分。 (2认同)

Chr*_*our 10

使用一种方法grep -o .把每一个字符上换行,并 sort -u删除重复:

$ grep -o . file | sort -u 
Run Code Online (Sandbox Code Playgroud)

或者不需要的解决方案sort -u或纯粹写入的多个命令awk:

$ awk '{for(i=1;i<=NF;i++)if(!a[$i]++)print $i}' FS="" file
Run Code Online (Sandbox Code Playgroud)