![获取文件中所有小写单词的列表](https://linux22.com/image/82198/%E8%8E%B7%E5%8F%96%E6%96%87%E4%BB%B6%E4%B8%AD%E6%89%80%E6%9C%89%E5%B0%8F%E5%86%99%E5%8D%95%E8%AF%8D%E7%9A%84%E5%88%97%E8%A1%A8.png)
我正在尝试获取文件中所有小写单词的列表。到目前为止,我已经达到了使用命令行获取列表的程度
cat filename.txt | tr ' ' \\n | grep -w '[[:lower:]]*' | sort -u | less
但是,此命令不会删除列表中的非字母字符;而是会删除列表中的非字母字符。我得到一份带有表格的清单
(which
(which,
about
about,
about.
about:
about;
about?
which
我只对只有文字的台词感兴趣。如何使用类似的 line 命令获取它们?
答案1
POSIXly:
tr -s '[:blank:]' '[\n*]' <file | grep -xE '[[:lower:]]+'
答案2
给你:
sed 's/[^A-Za-z]\+/\n/g;s/$/\n/;s/[^\n]*[A-Z][^\n]*\n//g;s/\n$//' <input_file | sort -u
答案3
过了一会儿,我回到这个问题,只是想展示一下我的固定命令,它做到了这一点,以记录在案。
tr -s '[:blank:]' '[\n*]' < filename.txt | grep -wo '[[:lower:]]*' | sort -u | less -N