支撑扩展步进增量不工作bash

cac*_*oza 3 unix bash paste

我正在尝试将一些文本文件堆叠为新列.这些文件名为energies_Strength0.0BosonsXXX.txt,其中XXX为80,90,100或110.当我运行以下命令时:

paste energies_Strength0.0Bosons{110..80..10}.txt | column -s $'\t' -t > energies_Strength0.0.txt
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

paste: energies_Strength0.0Bosons{110..80..10}.txt: No such file or directory
paste: energies_Strength0.1Bosons{110..80..10}.txt: No such file or directory
paste: energies_Strength0.05Bosons{110..80..10}.txt: No such file or directory
paste: energies_Strength0.15Bosons{110..80..10}.txt: No such file or directory
Run Code Online (Sandbox Code Playgroud)

如果文件以单位步骤编入索引,那么同样的命令也可以正常工作.这是,如果XXX = {80,81,82,...,109,110},我运行命令:

 paste energies_Strength0.0Bosons{110..80}.txt | column -s $'\t' -t > energies_Strength0.0.txt
Run Code Online (Sandbox Code Playgroud)

编辑:

你好,我根据你的想法尝试了以下几行:

#$ -S /bin/bash
LANG=C 

for ((i=110; i>=80; i-=10));
do
paste energies_Strength0.0Bosons$i.txt | column -s $'\t' -t > energies_Strength0.0.txt
done 
Run Code Online (Sandbox Code Playgroud)

但它只粘贴... Bosons80.txt文件.我需要构建如下结构:

paste ...80.txt ...90.txt ...100.txt ...110.txt | column -s $'\t' -t > energies_Strength0.0.txt
Run Code Online (Sandbox Code Playgroud)

anu*_*ava 5

{110..80..10} 语法仅在BASH 4+ VERSIONS上受支持.

在OSX上,您的BASH版本是3.2.xx

您可以使用此替代算术循环:

for ((i=110; i>=80; i-=10)); do echo $i.txt; done
Run Code Online (Sandbox Code Playgroud)


Ken*_*ent 5

重击 >=4{100..80..10}

bash <4 你可以seq 80 10 100

例子:

kent$ seq -f '%g.txt' 80 10 110
80.txt
90.txt
100.txt
110.txt
Run Code Online (Sandbox Code Playgroud)