ディレクトリのテキストファイルでホスト名を見つけ、ディレクトリ名をホスト名に変更します。

ディレクトリのテキストファイルでホスト名を見つけ、ディレクトリ名をホスト名に変更します。

/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 {} +

(GNUgrepとGNUの仮定mv、テストされていません)

これを行うには、削除してくださいecho

おすすめ記事