두 목록을 쉘 스크립트와 비교합니다
-
05-07-2019 - |
문제
파일 F1, F2에 두 개의 숫자 목록이 있다고 가정합니다. 첫 번째 목록의 숫자가 두 번째에 있고 그 반대의 숫자가 있는지 확인하고 싶습니다. 현재 GREP -F F2 -V F1을 사용한 다음 쉘 스크립트를 사용하여 반복하고 있습니다. 이것은 꽤 느립니다 (2 차 시간이 아파요). 더 좋은 방법이 있습니까?
해결책
나는 이런 종류의 'Comm'을 좋아합니다. (파일을 정렬해야합니다.)
$ cat f1
1
2
3
$ cat f2
1
4
5
$ comm f1 f2
1
2
3
4
5
$ comm -12 f1 f2
1
$ comm -23 f1 f2
2
3
$ comm -13 f1 f2
4
5
$
다른 팁
각 번호를 단일 줄에 넣을 수 없었습니다. diff
(1) 그들? 제대로 작동하려면 목록을 미리 정렬해야 할 수도 있습니다.
특별한 경우 한 파일은 다른 파일의 하위 집합입니다, 다음과 같은:
cat f1 f2 | sort | uniq -u
라인을 나열합니다 만 더 큰 파일. 그리고 물론 배관 wc -l
카운트를 보여줄 것입니다.
그러나 그것은 당신이 묘사 한 것이 아닙니다.
이 1 라이너는 내 특정 요구를 자주 제공하지만보다 일반적인 해결책을보고 싶습니다.
제휴하지 않습니다 StackOverflow