Миграция из Пеликана в Уго - PullRequest
       108

Миграция из Пеликана в Уго

0 голосов
/ 29 сентября 2019

Я читал статью , показывающую, как перенести файлы уценки из Пеликана в Гюго.Я пытаюсь понять, что делает скрипт awk.:

# begin block, executed once, 
# to set field separator, output fied separator & print 3 dashes
BEGIN { FS = ":"; OFS = ":"; print "---" }

# ??? 
!c && /^$/ { print "---\n"; c = 1 }

# user defined function?
c { print; next }

# user defined function?
!c {
    # lower first field
    $1 = tolower($1)

    # if first field is "date"
    if ($1 == "date") {
        # transform second field
        $2 = gensub(/ ([^.]+)\.([^.]+).([^.]+)/, " \\3-\\2-\\1", 1, $2)
        $2 = gensub(/-([0-9])-/, "-0\\1-", 1, $2)
    }

    if ($1 == "tags")
        $2 = " [" gensub(/[-a-z]+/, "'\\0'", "g", substr($2, 2)) "]"

    print
}

Я не очень понимаю, что такое c и !c, это определенные пользователем функции?Без ключевого слова функции и без параметров?Что именно означает c=1?

1 Ответ

2 голосов
/ 29 сентября 2019

c является переменной.c=1 устанавливает значение c равным 1

  • c - это проверка переменной c и ее true, отличной от 0
  • !c является проверкой переменной c и имеет значение true, если c не установлено или 0
  • c { print; next } Если для c установлено значение, отличное от ничего, или 0, тогдаprint (напечатает всю строку, так как ничего другого не указано).next прекратить то, что вы делаете, перейти к следующей строке и начать все сначала.
...