Busybox(OpenWRT)를 사용하는 임베디드 Linux 시스템이 있으므로 명령이 제한됩니다. 아래와 같이 두 개의 파일이 있습니다.
첫 번째 파일
aaaaaa
bbbbbb
cccccc
mmmmmm
nnnnnn
두 번째 파일
mmmmmm
nnnnnn
yyyyyy
zzzzzz
이 2개의 목록을 1개의 파일로 병합하고 중복 항목을 제거해야 합니다. 차이점이 없으므로(공간이 제한되어 있음) awesome awk
, sed
및 grep
(또는 표준 Busybox 인스턴스에 포함될 수 있는 기타 도구)를 사용할 수 있습니다. 병합된 파일로 이동합니다. 예:
command1 > mylist.merge
command2 mylist.merge > originallist
완전히 괜찮아요. 한 줄 명령일 필요는 없습니다.
현재 사용 중인 Busybox 인스턴스에 정의된 함수(기본 OpenWRT): [,[[, arping, ash, awk, basename, brctl, bunzip2, bzcat, cat, chgrp, chmod, chown, chroot,clear, cmp, cp , crond, crontab, cut, 날짜, dd, df, dirname, dmesg, du, echo, egrep, env, expr, false, fgrep, find, free, fsync, grep, gunzip, gzip, 정지, head, hexdump, 호스트 ID , hwclock, id, ifconfig, init, insmod, kill, killall, klogd, less, ln, lock, logger, logread, ls, lsmod, md5sum, mkdir, mkfifo, mknod, mktemp, mount, mv, nc, netmsg, netstat , nice, nslookup, ntpd, passwd, pgrep, pidof, ping, ping6,ivot_root, pkill, poweroff, printf, ps, pwd, 재시작, 재설정, rm, rmdir, rmmod, 라우팅, sed, seq, sh, sleep , sort , 시작-중지 데몬, string, switch_root, sync, sysctl, syslogd, tail, tar, tee, telnet, telnetd, test, time, top, touch, tr, Traceroute, true, udhcpc, umount, uname, uniq, uptime, vconfig, vi, watchdog, wc, wget, which, xargs, 예, zcat
답변1
답변2
단 하나의 명령으로 파이프가 필요하지 않습니다.
sort -u FILE1 FILE2
찾다
중복 행 억제
답변3
또 다른 해결책:
awk '!a[$0]++' file_1 file_2
답변4
특정 키 열을 기준으로 정렬하려면 다음 명령을 사용하십시오.
awk '!duplicate[$1,$2,$3]++' file_1 file_2
여기서 첫 번째, 두 번째 및 세 번째 열은 기본 키로 간주됩니다.