Bash 查找文件夹并使用FIND、GREP、XARGS和AWK(重命名)它们?

Bash 查找文件夹并使用FIND、GREP、XARGS和AWK(重命名)它们?,bash,awk,grep,find,Bash,Awk,Grep,Find,我正在尝试移动我的日志文件夹。这是我到目前为止所拥有的 cd archive find .. -type d -name 'LOGS' | xargs -I '{}' mv {} `echo {} | awk -F/ 'NF > 1 { print $(NF - 1)"-LOGS"; }'` 不幸的是-->echo{}|awk-F/'NF>1{print$(NF-1)“-LOGS”;}'使用xargs: find .. -type d -name 'LOGS' | xargs -I {}

我正在尝试移动我的日志文件夹。这是我到目前为止所拥有的

cd archive
find .. -type d -name 'LOGS' | xargs -I '{}' mv {} `echo {} | awk -F/ 'NF > 1 { print $(NF - 1)"-LOGS"; }'`
不幸的是-->
echo{}|awk-F/'NF>1{print$(NF-1)“-LOGS”;}'
使用xargs:

find .. -type d -name 'LOGS' |
xargs -I {} bash -c 'd="${1%/*}"; mv "$1" "${d##*/}-LOGS"' - {}
或者,您也可以使用流程替换这样做:

cd archive

while IFS= read -rd '' dir; do
   d="${dir%/*}"
   d="${d##*/}"
   mv "$dir" "$d-LOGS"
done < <(find .. -type d -name 'LOGS' -print0)
cd存档
而IFS=read-rd''dir;做
d=“${dir%/*}”
d=“${d##*/}”
mv“$dir”$d-LOGS
使用xargs完成<:

find .. -type d -name 'LOGS' |
xargs -I {} bash -c 'd="${1%/*}"; mv "$1" "${d##*/}-LOGS"' - {}
或者,您也可以使用流程替换这样做:

cd archive

while IFS= read -rd '' dir; do
   d="${dir%/*}"
   d="${d##*/}"
   mv "$dir" "$d-LOGS"
done < <(find .. -type d -name 'LOGS' -print0)
cd存档
而IFS=read-rd''dir;做
d=“${dir%/*}”
d=“${d##*/}”
mv“$dir”$d-LOGS
完成<