Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 使用脚本更改文件名_Linux_Bash - Fatal编程技术网

Linux 使用脚本更改文件名

Linux 使用脚本更改文件名,linux,bash,Linux,Bash,我有很多文件,我想将这些名称更改为文件_1-1的文件,直到达到文件_8-5的文件40 我编写了这段代码,但它删除了所有文件,并将最后一个文件转换为file1 pwd for i in {1..8} do for j in {1..5} do for k in {1..40} do (cd ./prof/ && mv file_$i-$j.dat file$k.dat) done

我有很多文件,我想将这些名称更改为文件_1-1的文件,直到达到文件_8-5的文件40

我编写了这段代码,但它删除了所有文件,并将最后一个文件转换为file1

    pwd
    for i in {1..8}     
    do
    for j in {1..5}    
    do
    for k in {1..40}    
    do
    (cd ./prof/ && mv file_$i-$j.dat file$k.dat)
    done
    done
    done

我想你只需要在
prof/
中去一次。然后,您可以从
i
j
计算
k
。在bash中:

cd prof
for i in {1..8}     
do
    for j in {1..5}    
    do
        k=$(( ($i-1) * 5 + $j ))
        mv pixel_$i-$j.ps pixel$k.ps
    done
done

它没有生成正确的文件。您是否有文件
pixel\u 1-1
<代码>像素\u 8-5在文件夹
prof/
中?是的,作为像素\u 1-1、…、像素\u 1-5、像素\u 2-1、…、像素\u 2-5等等。您的shell是否是bash?你可以通过
echo“$SHELL”
知道,我更新了帖子,提出了计算
k
的替代方法。它不会删除文件,而是将所有文件移动到
pixel1.ps
。尽管我怀疑它每次都能与
cd./prof
一起使用。