在 bash 命令行 for 循环中使用递增变量?

在 bash 命令行 for 循环中使用递增变量?

我正在使用 bash 命令行 for 循环将一组文件连接在一起,并且我想附加一个递增的数字。

像这样的东西:

j=1;for i in *.bak; do echo {$j++: >> files.grp;cat $i >> files.grp; echo }, >> files.grp; done

所以输出会是这样的:

{1:"file1 contents"},{2:"file2 contents"},

答案1

你需要做的是:

j=$(($j+1))

或使用

$((j++))

答案2

# file1.bak
hallo

# some other file.bak
H?llo*

# a!file.bak
new!
line"

用脚本处理:

j=1
for i in *.bak; do
  echo "{$((j++)):$(cat "$i")}" >> files.grp
done

在files.grp中写入以下内容:

{1:hallo}
{2:H?llo*}
{3:new!
line"}

相关内容