Bash 为每个文件创建一个目录并生成“;n”;每个文件的副本
当我为我的文件寻找解决方案时,我发现了一些完美的解决方案,我在这里给出了答案: 但是现在,我的问题是如何生成50个副本到我在下面的命令行中处理的每个文件生成的目录中Bash 为每个文件创建一个目录并生成“;n”;每个文件的副本,bash,file,directory,copy,Bash,File,Directory,Copy,当我为我的文件寻找解决方案时,我发现了一些完美的解决方案,我在这里给出了答案: 但是现在,我的问题是如何生成50个副本到我在下面的命令行中处理的每个文件生成的目录中 ls -p | grep -v / | xargs -t -n1 -i bash -c 'for i in {1..50}; do cp {} "{}_folder/copy${i}_{}" ; done' 要获得以下信息: -file1.csv---->folder_for_file1---->1
ls -p | grep -v / | xargs -t -n1 -i bash -c 'for i in {1..50}; do cp {} "{}_folder/copy${i}_{}" ; done'
要获得以下信息:
-file1.csv---->folder_for_file1---->1copy_file1.csv,2copy_file1.csv,3copy_file1.csv........50copy_file1.csv
-file2.csv---->folder_for_file2---->1copy_file2.csv,2copy_file2.csv,3copy_file2.csv........50copy_file2.csv
-file3.csv---->folder_for_file3---->1copy_file3.csv,2copy_file3.csv,3copy_file3.csv........50copy_file3.csv
...
-file256.csv---->folder_forfile256---->1copy_file256.csv,2copy_file256.csv,3copy_file256.csv........50copy_file256.csv
我如何才能将其与前面的答案相匹配??,包括该答案的功能代码
cd ParentFolder
for x in ./*.csv; do
mkdir "${x%.*}" && mv "$x" "${x%.*}"
done
所有的功劳都要归功于产生这个伟大答案的人,并提前感谢所有人将移动替换为复制/删除,并添加一个for循环:
cd ParentFolder
for x in ./*.csv; do
mkdir "${x%.*}"
for (( i=1;i<=50;i++ )); do # Create a loop, looping 50 times
cp "$x" "${x%.*}/copy$i_$x" # use i in the copy command
rm -f "$x" # Remove the file after the 50 copies
done
done
cd父文件夹
对于x英寸/*.csv;做
mkdir“${x%.*}”
对于((i=1;i我已经做了一些测试,我可以发布以下部分有效的代码,因为它在生成的文件夹中有效地复制了每个文件50次,但名称为“copy”在每个新文件中添加扩展名.csv,但如果有人能提供解决方案,那就太好了,我感谢@Raman Sailopal的帮助和评论
代码
cd-pruebas
对于x in./*.csv;do
mkdir“${x%.*}”
为了((i=1;我已经尝试过这个解决方案,但显然它没有像预期的那样工作,但是我非常感谢您的关注。问题是什么?实际上我刚刚发现并修改了。我没有将目录放在copy命令的目标中。我理解,但我认为当它生成副本时,它会删除所有副本,或者它在开始时不会生成它们,但我不知道它是否是我的bash版本,我使用的是版本4.3.48,它不应该这样做。$x是初始文件${x%.}目录,$I是副本号。rm-f$x将只删除初始文件。
cd pruebas
for x in ./*.csv; do
mkdir "${x%.*}"
for ((i=1;i<=50;i++)); do # Create a loop, looping 50 times
cp "$x" "${x%.*}/copy_$x_$i.csv" # use i in the copy command
#rm -f "$x" # Remove the file after the 50 copies
done
done