你好,我正在尝试查找文本中在 UNIX 中只出现一次的所有单词。我可以做些什么不同的事情?

你好,我正在尝试查找文本中在 UNIX 中只出现一次的所有单词。我可以做些什么不同的事情?
# -- Q2 --
# Write a pipeline that finds the number of words in the book that have been used only once.
# Your pipeline should be case insensitive
echo "-- Q2 --"
onlyOnce=$(cat *txt | tr '[:upper:]' '[:lower:]' | tr -s '[:punct:][:space:]' ' '| tr ' ' '\n' | sort | uniq -ic | awk '$1 == 1 {print $2}')
echo "Words used only once:"
echo "$onlyOnce"

答案1

awk

cat *txt |
    tr '[:upper:]' '[:lower:]' |
    tr -s '[:punct:][:space:]' |
    awk '{a[$1]++}END{for (i in a) if (a[i] == 1) {print i}}'

在你的例子中,你不能这样做

cat files | ... | awk '{}' file
    ^^^^^                  ^^^^

您只需指定文件一次。

相关内容