2012-11-24 40 views
0

例如,我有这些文件:如何收集所有自述文件并将其重命名为文件夹?

/Applications/Emacs.app/Contents/Resources/etc/images/custom/README 
/Applications/Emacs.app/Contents/Resources/etc/images/ezimage/README 
/Applications/Emacs.app/Contents/Resources/etc/images/gnus/README 
/Applications/Emacs.app/Contents/Resources/etc/images/gud/README 
/Applications/Emacs.app/Contents/Resources/etc/images/icons/README 

我想收集所有这些,他们用不同的名字保存在一个目录中,使他们成为这样的事情:

/dest/custom_README 
/dest/ezimage_README 
/dest/gnus_README 
/dest/gud_README 
/dest/icons_README 

我知道findxargs可能对做这项工作很有用,但不知道如何根据目录名称来执行rename步骤。

有没有人有关于此的想法?谢谢!

回答

0
find /Applications/Emacs.app/Contents/Resources/etc/images -name README | 
while IFS= read -r filename; do 
    cp -v "$filename" /dest/"$(basename "$(dirname "$filename")")_README" 
done 
0

如何:

[[email protected] ~]$ sed -r <file 's|.*images/(.*)/(.*)|\1_\2|g' 
custom_README 
ezimage_README 
gnus_README 
gud_README 
icons_README 

或者使用awk

awk < file -F'/' '{print $(NF-1)"_"$NF}' 
相关问题