在Bash -sed命令中增加变量

时间:2016-08-17 05:31:01

标签: bash awk sed auto-increment

我有一个bash脚本,我正在尝试放在一起,找到文件夹中的所有图像,然后将这些文件的名称放入预先格式化的CSV中。我实际上已经找到了更复杂的部分并且运行良好......我陷入了一个非常基本的部分。我有一个变量,我需要为每个找到的文件增加,简单就够了吗?我已经尝试了很多不同的东西,并且不能为我的生活让它增加。这是我正在使用的脚本:

已编辑以显示较少的上下文

i=0
find "$(pwd)" -maxdepth 1 -type f -exec file {} \; | awk -F: '{if ($2 ~/image/) print $1}' | grep -o -E '[^/]*$' | sed -e "s/^/$((++i))/" > "$(pwd)/inventory-$(date +%Y%m%d)-$(date +%I%M).csv"

我尝试使用i++i=+1i=i+1递增它,并在i变量的不同迭代之前放置美元符号......似乎没有任何实际增量变量。我最好的猜测是,这不是一个真正的循环,所以它不保存变量的变化?任何指导将不胜感激!

1 个答案:

答案 0 :(得分:0)

$((++i))由您的shell执行。但shell只执行一次此行。这条线不能满足你的需要。

我会在awk内增加,与文件名一起打印,然后在其他命令中组合输出。