删除重复项时合并两个列表

27 grep bash sed awk busybox

我有一个使用 Busybox (OpenWRT) 的嵌入式 linux 系统 - 所以命令是有限的。我有两个文件,看起来像:

第一个文件

aaaaaa
bbbbbb
cccccc
mmmmmm
nnnnnn
Run Code Online (Sandbox Code Playgroud)

第二个文件

mmmmmm
nnnnnn
yyyyyy
zzzzzz
Run Code Online (Sandbox Code Playgroud)

我需要将这 2 个列表合并为 1 个文件,并删除重复项。 我没有差异(空间有限),所以我们得到使用的伟大awksedgrep(或可能被包含在一个标准的Busybox的实例其他工具)。转到合并文件,例如:

command1 > mylist.merge 
command2 mylist.merge > originallist
Run Code Online (Sandbox Code Playgroud)

完全没问题。它不必是单行命令。

当前在我使用的 Busybox 实例中定义的函数(默认 OpenWRT):[, [[, arping, ash, awk, basename, brctl, bunzip2, bzcat, cat, chgrp, chmod, chown, chroot, clear, cmp, cp、crond、crontab、cut、date、dd、df、dirname、dmesg、du、echo、egrep、env、expr、false、fgrep、find、free、fsync、grep、gunzip、gzip、halt、head、hexdump、 hostid、hwclock、id、ifconfig、init、insmod、kill、killall、klogd、less、ln、锁、记录器、logread、ls、lsmod、md5sum、mkdir、mkfifo、mknod、mktemp、mount、mv、nc、netmsg、 netstat, nice, nslookup, ntpd, passwd, pgrep, pidof, ping, ping6, pivot_root, pkill, poweroff, printf, ps, pwd, reboot, reset, rm, rmdir, rmmod, route, sed, seq, sh, sleep,排序、启动-停止-守护进程、字符串、switch_root、同步、sysctl、syslogd、tail、tar、tee、telnet、telnetd、test、时间、顶部、触摸、tr、traceroute、true、udhcpc、umount、uname、uniq、正常运行时间、vconfig、vi、看门狗、wc、wget、which、xargs、是、zcat

小智 34

我认为

sort file1 file2 | uniq
aaaaaa
bbbbbb
cccccc
mmmmmm
nnnnnn
yyyyyy
zzzzzz
Run Code Online (Sandbox Code Playgroud)

会做你想做的。

附加文档:uniq 排序

  • busybox 排序支持唯一标志`-u`。 (9认同)

Gil*_*not 18

在没有任何管道的一个命令中:

sort -u FILE1 FILE2
Run Code Online (Sandbox Code Playgroud)

搜索

抑制重复行

-> http://www.busybox.net/downloads/BusyBox.html