Сетевой менеджер отключает использование OpenVPN, но VPN работает

У меня одинаковые скрипты. В одном я использую cat, а в другом - все AWK.

Вот первый:

#!/bin/bash


        lines=$(cat /etc/passwd | wc -l)

        for ((i=1 ; i <=$lines ; i++ ))
        do
        user=$(cat /etc/passwd | awk -F : -vi=$i 'NR==i {print $1}')
        uid=$(cat /etc/passwd | awk -F : -vi=$i 'NR==i {print $3}')
        gid=$(cat /etc/passwd | awk -F : -vi=$i 'NR==i {print $4}')
        shell=$(cat /etc/passwd | awk -F : -vi=$i 'NR==i {print $7}')
        echo -e "User is : $user \t Uid is : $uid \t Gid is : $gid \t Shell is : $shell"
        done

Вот второй:

#!/bin/bash


        lines=$(awk  'END {print NR}' /etc/passwd)

        for ((i=1 ; i <=$lines ; i++ ))
        do
        user=$(awk  -F : -vi=$i 'NR==i {print $1}' /etc/passwd)
        uid=$(awk  -F : -vi=$i 'NR==i {print $3}'  /etc/passwd)
        gid=$(awk  -F : -vi=$i 'NR==i {print $4}'  /etc/passwd)
        shell=$(awk  -F : -vi=$i 'NR==i {print $7}' /etc/passwd)
        echo -e "User is : $user \t Uid is : $uid \t Gid is : $gid \t Shell is : $shell"
        done
[d3 ] Время, затрачиваемое на первый скрипт, выглядит следующим образом (скрипт с операторами CAT):

real    0m0.215s
user    0m0.023s
sys     0m0.238s

Для второго скрипта, который имеет только инструкции AWK, выполняется следующее время:

real    0m0.132s
user    0m0.013s
sys     0m0.123s

Я думаю, что обработка awk файла намного быстрее по сравнению с вызовом другой внешней функции для чтения файлов. Я был бы рад за обсуждение результатов.

Я думаю, что AWK лучше работает в некоторых случаях.

2
задан 16 September 2017 в 02:53

0 ответов

Другие вопросы по тегам:

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