LINUX如何删除一个文件中的重复行后并保持原来顺序

LINUX如何删除一个文件中的重复行后并保持原来顺序,第1张

man uniq

uniq file_name 删除重复的行(重复的行只保留1个)

uniq -u file_name 只保留唯一的行(重复的行全部被删除)

但它只能处理相邻的重复行

#! /bin/bash

filea=a.txt

fileb=b.txt

n=0

m=0

while read linea

do

let "n=n+1"

noa1=`echo $linea|awk -F "|" '{print $1}'`

while read lineb

do

let "m=m+1"

nob1=`echo $lineb|awk -F "|" '{print $1}'`

nob2=`echo $lineb|awk -F "|" '{print $2}'`

if [ "$noa1" = "$nob1" ]

then

echo "${linea}|${nob2}">>c.txt

fi

done<$fileb

done<$filea

这个脚本已经可以把文件按照你要求合并了,不过按照时间字段比较我一时还没想出来怎么弄,请高手补充吧

你可以参考如下代码:

import re

s='~!@#adjdakdakjjkd002212ADSAADA()//../eqqwedadjadj'

print re.sub('[^A-Za-z]','',s)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7346717.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存