从文本文件中提取每一行,并将其与文件中的所有行进行比较,以避免在shell脚本中出现重复

时间:2016-12-19 13:11:55

标签: shell unix

文本文件text.txt的内容

DS/Apple
DS/Banana
DS/Strawberry
DS/Apple
DS/Orange

我写的代码:

for i in $(cat text.txt)
do
    count = 0
    for j in $(cat text.txt)
    do
    if [ i == j ]; then
    count = count + 1
    fi
    done
    if [ count <  2 ]; then
    $i >> Final.txt
done

我得到的错误:

$ Trial.sh
./Trial.sh: line 12: syntax error near unexpected token `done'
./Trial.sh: line 12: `done'

我希望输出在新文本文件Final.txt

中没有任何重复行

我哪里错了?

2 个答案:

答案 0 :(得分:1)

awk '!seen[$0]++' text.txt > Result.txt

这解决了我的问题。它删除了重复项。

答案 1 :(得分:0)

如果要删除所有重复项,您可能不想多次扫描文件。您可以一次性轻松完成:

awk '!a[$0]++' text.txt