我有一个文件,每行有6个字符的单词,我想检查是否有任何重复的单词。我做了以下但是有些事情是对的:
#!/bin/bash
while read line
do
name=$line
d=$( grep '$name' chain.txt | wc -w )
if [ $d -gt '1' ]; then
echo $d $name
fi
done <$1
答案 0 :(得分:3)
假设每个单词都在一个新行上,您可以在不循环的情况下实现此目的:
$ cat chain.txt | sort | uniq -c | grep -v " 1 " | cut -c9-
答案 1 :(得分:2)
您可以使用awk
:
awk -F'\n' 'found[$1] {print}; {found[$1]++}' chain.txt
将字段分隔符设置为换行符,以便我们查看整行。然后,如果数组found
中已存在该行,则打印该行。最后,将该行添加到找到的数组中。
注意:如果一行仅被抑制一次,那么如果出现相同的行,例如6次,它将被打印5次。