查找文件中仅显示一次的行

דיו*_*טון 2 linux bash file

假设我有 100 行的文件。文件中有很多行重复,只有一行不重复。

我想找到只显示一次的行。是否有一个命令,或者我是否必须构建一些复杂的循环,如下所示?

到目前为止我的代码:

#!/bin/bash
filename="repeat_lines.txt"

var="$(wc -l <$filename )"
echo "length:" $var
#cp ex4.txt ex4_copy.txt
for((index=0; index < var; index++));
do
    one="$(head -n $index $filename | tail -1)"
    counter=0
        for((index2=0; index2 < var; index2++));
        do
            two="$(head -n $index2 $filename | tail -1)"
            if [ "$one" == "$two" ]; then
                counter=$((counter+1))
            fi
        done
    echo $one"is "$counter" times in the text: "
done
Run Code Online (Sandbox Code Playgroud)

tom*_*x86 6

如果我正确理解你的问题,那么

sort repeat_lines.txt | uniq -u应该可以解决问题。

例如,对于包含以下内容的文件:

a
b
a
c
b
Run Code Online (Sandbox Code Playgroud)

它会输出c.

有关进一步参考,请参阅sort 联机帮助页uniq 联机帮助页