Добавить ведущие нули к первой колонке

Как отмечалось в другом месте этой цепочки, исходный вопрос в основном отвечает сам собой. Вот иллюстрация, показывающая, что условия if также могут быть вложенными.

В этом примере используется if , чтобы проверить, существует ли файл и является ли он обычным файлом. Если эти условия верны, проверьте, имеет ли он размер больше 0.

#!/bin/bash

echo "Which error log are you checking today? "
read answer

if [ -f /opt/logs/$answer*.errors ]
    then
        if [ -s /opt/logs/$answer*.errors ]
            then
                echo "Content is present in the $answer error log file."
            else
                echo "No errors are present in the $answer error log file."
        fi
    else
        echo "$answer does not have an error log at this time."
fi
0
05.10.2018, 13:52
2 ответа

Да, немного сложнее. Попробуйте

awk -F, '
        {n=split ($1, T, "\.")
         $1 = DL = ""
         for (i=1; i<=n; i++)   {S[i] = T[i] + 0
                                 gsub (/[0-9]/, "", T[i])
                                 $1 = $1 DL (S[i]?sprintf ("%05d", S[i]):"") T[i]
                                 DL = "."
                                }
        }
1
' OFS=, file

Он разбивает первое поле в .на массив T, затем выполняет цикл по T, помещает начальные цифры соответствующего элемента в массив S(, используя функцию awkдля использования только начальных строк строки. цифры для арифметики ), удаляет только начальные цифры (! )из Tи перестраивает поле $1.

1
28.01.2020, 02:31

Если Perl является опцией

perl -F, -pe '$_ = join ",", @F if $F[0] =~ s/(\d+)/sprintf "%05d", $1/ge' file
1
28.01.2020, 02:31

Теги

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