скопируйте файл n раз и переименуйте его с указанием c имен - PullRequest
0 голосов
/ 30 января 2020

Предположим, у меня есть bash сценарий с именем bash.sh в папке /home/test/, и в этой папке у меня также есть еще 5 файлов с именем: file_1a.nc file_1b.nc file_2a.nc file_6a.nc file_6b.nc.

Я хотел бы скопировать bash.sh 5 раз, и новые копии должны иметь то же имя, что и файлы .n c, а именно:

file_1a_bash.sh file_1b_bash.sh file_2a_bash.sh file_6a_bash.sh file_6b_bash.sh

Есть предложения? Спасибо

Ответы [ 2 ]

2 голосов
/ 30 января 2020

Это просто простой случай bash Расширение параметра обработка.

for f in file_*.nc; do cp bash.sh "${f%.nc}_bash.sh"; done
0 голосов
/ 30 января 2020

Вы можете применить этот ранее ответ к вашему делу

find /home/test/ -type f -name '*.nc' | while read f; do 
mv "$f" "${f%.nc}_bash.sh"; 

Вы также можете использовать ls -1, когда находитесь в /home/test/ вместо find;

for f in `ls -1 file_*` ; do 
cp ${f} "${f%.nc}"_bash.sh; 
done
...