Linux中怎么删除重复行

2023-04-17 01:32:00 linux 删除 重复

在Linux系统中删除重复行的方法有很多,我们可以使用Linux终端,也可以使用Linux脚本来实现。下面介绍使用Linux终端删除重复行的方法。

首先,打开Linux系统的终端,输入“sort”命令,然后按照文件名把文件里的行按字母顺序排序,排序后的文件会被覆盖,而原文件会被备份,备份的文件名会以“.bak”结尾。排序后,输入“uniq”命令,这个命令会把文件里的重复行去掉,只保留一个,输出的文件会覆盖掉原文件,而原文件会被备份,备份的文件名会以“.bak”结尾。

使用Linux脚本来删除重复行也是比较常用的方法,首先,我们需要创建一个名为“delete_duplicate_lines.sh”的脚本文件,然后在文件中输入以下代码:

#!/bin/sh
# 删除重复行

# 检查参数
if [ $# -ne 1 ]
then
    echo "Usage: $0 filename"
    exit
fi

# 检查文件是否存在
if [ ! -f "$1" ]
then
    echo "File $1 not found"
    exit
fi

# 把文件里的行按字母顺序排序,排序后的文件会被覆盖,而原文件会被备份,备份的文件名会以“.bak”结尾
sort "$1" > "$1.tmp"
mv "$1.tmp" "$1"

# 把文件里的重复行去掉,只保留一个,输出的文件会覆盖掉原文件,而原文件会被备份,备份的文件名会以“.bak”结尾
uniq "$1" > "$1.tmp"
mv "$1.tmp" "$1"

保存脚本文件后,使用“chmod +x delete_duplicate_lines.sh”命令把脚本文件设置为可执行,然后使用“./delete_duplicate_lines.sh filename”命令把文件里的重复行去掉,只保留一个。

总之,在Linux系统中删除重复行的方法有很多,我们可以使用Linux终端,也可以使用Linux脚本来实现。使用Linux终端删除重复行的方法是使用“sort”命令把文件里的行按字母顺序排序,然后使用“uniq”命令把文件里的重复行去掉,只保留一个;使用Linux脚本删除重复行的方法是创建一个脚本文件,然后把文件里的重复行去掉,只保留一个。

相关文章