[英]Changing the file names and copying into different directory
我有一些文件说大约 1000 个数字.. 想以这样的方式重命名这些文件,只想从文件名中删除几个字符并将其复制到其他目录。
例如:原始文件名。
vfcon062562~19.xml
vfcon058794~29.xml
vfcon072009~3.xml
vfcon071992~10.xml
vfcon071986~2.xml
vfcon071339~4.xml
vfcon069979~43.xml
所需的 O/P 正在切割 ~ 和以下字符。 O/P 示例:
vfcon058794.xml
vfcon062562.xml
vfcon069979.xml
vfcon071339.xml
vfcon071986.xml
vfcon071992.xml
vfcon072009.xml
但是想放置n个不同的目录。
如果您使用 bash 或类似的,您可以使用以下简单循环:
for input in vfcon*xml
do
mv $input targetDir/$(echo $input | awk -F~ '{print $1".xml"}')
done
或者在一行中:
for input in vfcon*xml; do mv $input targetDir/$(echo $input | awk -F~ '{print $1".xml"}'); done
这使用 awk 来分隔所有内容 ~ 将其用作字段分隔符并打印第一列并附加“.xml”以创建输出文件名。 所有这些都以 targetDir 为前缀,它可以是完整路径。
如果您使用的是 csh / tcsh,那么循环的语法会略有不同,但命令是相同的。
我喜欢在更改任何内容之前确保我的数据集是正确的,因此我会先将其放入一个变量中,然后再检查它。
files=$(ls vfcon*xml) echo $files | less
然后,就像@Stefan 所说的,使用循环:
for i in $files do mv "$i" "$( echo "$file" | sed 's/~[0-9].//g')" done
如果您需要有关 bash 的帮助,可以使用http://www.shellcheck.net/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.