디렉터리의 텍스트 파일에서 호스트 이름을 찾아 디렉터리 이름을 호스트 이름으로 바꿉니다.

디렉터리의 텍스트 파일에서 호스트 이름을 찾아 디렉터리 이름을 호스트 이름으로 바꿉니다.

/sys/info호스트 이름은 다음 형식의 텍스트 파일에 포함되어 있습니다.

Host Name: xxxxxxx

xxxxxxx나는 그것으로부터 호스트 이름을 얻고(이 경우) /sys/info상위 디렉토리의 이름을 해당 호스트 이름과 동일하게 바꾸고 싶습니다 .

답변1

sys/info파일이 있는 디렉터리를 찾아 해당 파일 내에서 이름을 바꾸려고 한다고 가정해 Host name보겠습니다.

LC_ALL=C find . -depth -path './*/sys/info' -type f -exec sh -c '
  for file do
    if host=$(grep -Poxm1 "Host Name:\s*\K\S+" < "$file"); then
       echo mv -iT -- "${file%/sys/info}" "${file%/*/sys/info}/$host"
    fi
  done' sh {} +

(GNU grep및 GNU 가정 mv, 테스트되지 않음)

이렇게 하려면 삭제하세요 echo.

관련 정보