LINUX.ORG.RU

Добавить 0 эелементу массива равному числу

 


0

1

Всем здравствуйте!

Есть у меня переменная, значения которой я получаю через grep, там есть сроки которые которые содержат либо 2, либо 11, либо 12 либо 18 символов и мне нужно добавить 0 в начале всем значениям равным 11.

вот как делаю:

LIST=$(grep -Eo 'регулярное выражение' имя файла)

echo 'result' for i in $LIST; do if [ «${#i[@]}» = 11 ]; then echo '0'$i И вот тут не понимаю как добавить этим элементам 0 в начале. Если пишу так с условием как выше(= 11), то он просто находит их, прибавляет этим элементам 0, но печатает только их. Мне нужно что бы этим элементам был добавлен 0 в начачале, но выводился весь массив. fi done;

Заранее спасибо за помощь.

for должен быть арифметическим, i от 0 до числа элементов массива, тогда можно будем писать:

LIST[i]="0"${LIST[i]}

mky ★★★★★
()

это ж башик? 5 зачем?

если бы использовал разметку понять было в разы проще… хотя нет (

есть сроки которые которые содержат либо 2, либо 11, либо 12 либо 18 символов и мне нужно добавить 0 в начале всем значениям равным 11.

должно звучать как

есть строки которые , которые содержат либо 2, либо 11, либо 12 , либо 18 символов и мне нужно добавить «0» в начале всем значениям равнымо всех строк размером в 11 символов.

да?

остальное я комментировать не буду – нет у меня к этому потоку сознания печатных слов…

всё работает как ты и написал. ты просто не понимаешь элементарного программирования.

но печатает только их. Мне нужно что бы этим элементам был добавлен 0 в начачале, но выводился весь массив

ну так добавь ветку else echo $i и будет тебе счастие. (куда вставить сам догадайся :)

anonymous
()
Ответ на: комментарий от mky

а ты понял его задачу? я в своей трактовке не совсем уверен…

anonymous
()
for i in ${LIST[@]}; do
    echo $i | sed -E 's/^(.{11})$/0\1/'
    done
anonymous
()
Ответ на: комментарий от explame

не за что ) в дальнейшем пиши «чётче и чище» – очень помогает и самому разобраться что не так )

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.