Shell去除文件中重复的行

需求

一个a.txt文件中有很多ip和端口,在去重的同时,将每行中的多个空格替换为一个空格,输出文件中将保留后面出现的相同行,并且多个空格被替换为一个空格。

脚本实现

#!/bin/bash

# 设置输入文件和输出文件路径
input_file="a.txt"
output_file="unique_a.txt"

# 删除已存在的输出文件
rm -f "$output_file"

# 使用awk进行处理,替换多个空格为一个空格
awk '{ gsub(/[[:space:]]+/, " "); seen[$0]=$0 } END { for (i in seen) print seen[i] }' "$input_file" > "$output_file"

echo "去重完成,结果保存在 $output_file"


结果

posted @ 2024-02-27 23:11  Lz_蚂蚱  阅读(179)  评论(0)    收藏  举报