主机名包含在文本文件中,/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
执行此操作。