我正在使用回圈指令根據前綴(其名稱的第一個元素)壓縮許多 csv 檔案
printf '%s\n' *_*.csv | cut -d_ -f1 | uniq |
while read -r prefix
do
zip $ZIP_PATH/"$prefix"_"$DATE_EXPORT"_M2.zip "$prefix"_*.csv
done
它作業得很好,作為我的輸入
123_20211124_DONG.csv
123_20211124_FINA.csv
123_20211124_INDEM.csv
123_20211202_FINA.csv
123_20211202_INDEM.csv
并且 zip 回圈將打包所有這些檔案,因為它們具有相同的前綴或者,我只想打包那些具有 $DATE_EXPORT= 的檔案20211202,換句話說,我只想打包那些在檔案名中具有第二個元素的檔案名=20211202 = = DATE_EXPORT 變數我嘗試使用如下grep函式:
printf '%s\n' *_*.csv | grep $DATE_EXPORT | cut -d_ -f1 | uniq |
while read -r prefix
do
zip $ZIP_PATH/"$prefix"_"$DATE_EXPORT"_M2.zip "$prefix"_*.csv
done
但是,不起作用,有什么幫助嗎?
uj5u.com熱心網友回復:
"$prefix"_*.csv在zip您的第二個示例中的命令中沒有針對"$DATE_EXPORT". 嘗試"${prefix}_${DATE_EXPORT}_"*.csv或類似。您也可以使用*"_${DATE_EXPORT}_"*.csvwith printf, 而不是grep。
另外,我不確定 發生了什么$cut,但顯然cut是常用名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/372612.html
標籤:贝壳
