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"
结果
本文来自博客园,作者:Lz_蚂蚱,转载请注明原文链接:https://www.cnblogs.com/leizia/p/18038689