2016-08-17 217 views
1

我有一個bash腳本,我試圖將所有圖像放在一個文件夾中,然後將這些文件的名稱放入預格式化的CSV中。我其實有更復雜的部分,並且工作得很好......我被困在一個非常基本的部分。我有一個變量,我需要增加每個找到的文件,很簡單吧?我已經嘗試了一堆不同的東西,不能爲了我的生活而讓它增加。這裏是我正在使用的腳本:在Bash -sed命令中遞增變量

編輯,以顯示較少的情況下

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以及把美元符號的不同迭代前我變量...似乎沒有什麼實際增加變量。我最好的猜測是,這不是一個真正的循環,所以它不會保存變量的變化?任何指導將不勝感激!

+2

請將您的示例縮小爲僅顯示問題而不是其周圍的所有上下文,以使您的示例更加簡單。 – merlin2011

+0

對不起,我真的不是非常熟悉Bash,我不想剪掉那些相關的部分,我想我現在已經把它切下來,直到你將看到我正在努力的部分,而沒有在這種情況發生的地方取得了太多的內容。 – techiechic

回答

0

$((++i))由您的shell執行。但是shell只執行一次該行。這條線不能做你需要的。

我會在awk的內部遞增,將其與文件名一起打印出來,然後將輸出合併到其他命令中。