나는 두 줄 사이의 교차점을 찾기 위해 grep을 얻으려고 노력했습니다.
grep -Fx -f line1.txt line2.txt
입력 파일 내용:
1행.txt:
44.5 -125.0
44.0 -124.5
43.0 -124.3
42.0 -124.0
2행.txt:
43.0 -128.0
43.1 -127.0
43.2 -126.0
43.3 -125.0
43.4 -124.0
43.5 -123.0
43.6 -122.0
43.7 -121.0
문제는 이 두 행이 정확히 동일하지 않다는 것입니다.
교차로를 쉽게 찾을 수 있는 사람이 있나요?
나를 위해 교차로를 찾아주는 명령이 있었으면 좋겠다. 어쩌면 grep은 이것을 할 수 없습니까? 또한 GMT 명령을 시도했지만 작동하지 못했습니다. 어떤 제안이 있으십니까?
교차점에 가장 가까운 line2.txt 지점을 찾아서 쓰는 명령을 선택합니다.
답변1
Grep은 확실히 잘못된 도구입니다! sed는 수학을 좀 해야 하기 때문에 그다지 좋지 않습니다. Perl이 후보이지만 가장 중요한 것은 선 교차 테스트가 필요하다는 것입니다. 다음은 시작하는 데 도움이 되는 몇 가지 링크입니다. 다행스럽게도 유닉스는 프로그램을 작성해야 하기 때문에 프로그램 작성을 위한 훌륭한 플랫폼입니다.
답변2
저 할 수 있어요추측하다당신은 다음과 같은 것을 생각하고 있습니다 :
( cat line2.txt; cat line1.txt | sed 's/ */ xxxx /' ) | sort -n | awk '$2 == "xxxx" {f2=$3} $2 != "xxxx" {f1 = $2} {print $1" "f1" "f2}'
출력은 다음과 같습니다:
42.0 -124.0
43.0 128.0 -124.0
43.0 128.0 -124.3
43.1 127.0 -124.3
43.2 126.0 -124.3
43.3 125.0 -124.3
43.4 124.0 -124.3
43.5 123.0 -124.3
43.6 122.0 -124.3
43.7 121.0 -124.3
44.0 121.0 -124.5
44.5 121.0 -125.0