파일의 각 줄을 다른 파일로 재귀적으로 검색하고 출력을 새 파일로 인쇄합니다.

파일의 각 줄을 다른 파일로 재귀적으로 검색하고 출력을 새 파일로 인쇄합니다.

가상화된 환경에서 수천 대의 서버 목록을 가져와야 합니다. 파일에는 다음과 같은 내용이 있습니다.

Name          Host
sysserver0012 btesxid432.eu.domain.com
sysserver0015 btesxid433.eu.domain.com
ldap56        essgdb56.rspc-la.domain.com
..

이 파일은 vCenter를 통해 생성됩니다. 다른 vCenter에 있는 가상 머신 목록이 포함된 또 다른 파일이 있습니다. 예:

sysserver0015.eu.domain.com
sysserver0050.eu.domain.com

첫 번째 파일의 각 항목에서 일치하는 문자열을 가져와서 모든 호스트에 대해 해당 파일의 일치 항목을 가져와야 하지만 문제는 첫 번째 파일에는 FQDN이 아닌 호스트 이름만 있다는 것입니다. 당신이 한 일, 검색 방법을 찾고 싶습니다. 호스트 이름이 두 번째 파일(전체 도메인 없이)에서 발견되면 해당 줄을 인쇄하고 새 파일에 저장하세요.

따라서 위 입력에서 생성된 새 파일의 데모로서 다음과 같이 기록됩니다: sysserver0015 btesxid433.eu.domain.com

답변1

아니면 시도해 보세요awk

awk -F"[ .]" 'NR==FNR {SRCH[$1]; next} $1 in SRCH' file2 file1
sysserver0015 btesxid433.eu.domain.com

답변2

이런 것을 찾고 계십니까? :

while read a1 a2 ; do
  a3=$(grep $a1 file1.txt)
  printf "$a1 $a2 ${a3:-NO_MATCH}\n"
done <file2.txt | column -t

관련 정보