Форматирование Bash printf не работает

Просто используйте для строки, разделенной запятыми, продолжайте добавлять индекс ваших файлов к переменной и распечатывайте переменную

for((i=1; i<=30; i++))
do
    name="File${i}.exe"; [[ ! -e "$name" ]] && files="$files$i,"
done
echo $files | sed  s/,$//

Или вы можете сохранить значения в массиве/списке

arr=()
for((i=1; i<=30; i++))
do
    name="File${i}.exe"; [[ ! -e "$name" ]] && arr+=($i)
done
(IFS=, ; echo "${arr[*]}") #to print the array with comma as separator 
0
23.12.2019, 18:36
1 ответ

Необходимо расширить управляющие последовательности обратной косой черты в соответствующем аргументе. Как сказано в здесь:

\c  Terminate output similarly to the \c escape used by echo -e. printf produces no additional output after coming across a \c escape in a %b argument.
$ printf "%b\n" "ABC\chi"
ABC
5
28.01.2020, 02:13

Теги

Похожие вопросы