Почему предлагается вызвать stat с env?

Similar a la respuesta de Roman, pero codifica menos sobre el contenido del archivo

awk -F, -v OFS=, '
    NR > 1 {data[$1][$2] = $3; blocks[$2]}
    END {
        PROCINFO["sorted_in"] = "@ind_str_asc"

        # header
        printf "TimeStamp"
        for (block in blocks) {
            printf "%s%s", OFS, block
        }
        print ""

        # data
        for (ts in data) {
            printf "%s", ts
            for (block in blocks) {
                printf "%s%s", OFS, data[ts][block]
            }
            print ""
        }
    }
' file
TimeStamp,data_0,data_1,data_4,date_2,date_3
04:19:12,4,6,12,8,10
04:19:14,5,6,8,,7

Tenga en cuenta que sus datos de muestra usan "datos " y "fecha " ambos.

-3
30.12.2016, 18:50
1 ответ
  1. Bash может не иметь встроенного stat , но другие оболочки могут. Фактически, оболочка может предоставлять встроенные версии любой утилиты, которую он хочет, и пользователь может переопределить stat своей собственной функцией оболочки или псевдонимом, вызывающим другой двоичный файл.

  2. Нет. Утилита, которую выполняет env , не может быть встроенной (например, попробуйте ее с cd ). Псевдонимы и функции оболочки также не допускаются.

Руководство просто пытается убедиться, что пользователь получает описанные функции. На мой взгляд, если он хочет быть действительно параноиком, он также должен упомянуть, что в идеале вы должны вызывать stat с его абсолютным путем. Это имеет больше смысла в системах, отличных от Linux, где GNU coreutils является необязательным дополнением (часто устанавливается в / usr / local / gnu / bin или в другом месте, либо с префиксом g , например gstat , gls , gmv и т. д.)

5
28.01.2020, 05:18

Теги

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