Awk: расширение первого поля вдоль столбца

Я подозреваю, что это - в основном вопрос инерции. Когда-то давно, sudo команда не существовала, таким образом, корневая учетная запись должна была быть настроена с паролем. Согласно "Краткой истории Sudo", ссылаемый из этой статьи Wikipedia, sudo был сначала реализован приблизительно в 1980, но это, вероятно, не становилось широко распространенным до 1990-х.

Может все еще быть тенденция просмотреть sudo как дополнительное удобство, а не как что-то, что должно быть в ядре того, как управляют системами.

2
17.01.2013, 04:48
2 ответа

Односторонняя дорога:

$ awk -F, '!$1{$1=p;}$1{p=$1;}1' OFS=, file

$1{p=$1;} Когда 1$ будет иметь значение, сохраните его в переменной p

!$1 Средний 1$ пуст. Когда 1$ пуст, установите 1$ с p, который содержит последнее значение за 1$.

1 распечатать каждую строку.

3
27.01.2020, 21:57
  • 1
    Это, что я искал.Большое спасибо! –  user30422 17.01.2013, 07:25
  • 2
    !$1 не только означает, что 1$ пуст. Необходимо изменить его на $1 == "" или иначе, у Вас могут быть проблемы, если первое поле может быть, например, 0 –  Stéphane Chazelas 18.01.2013, 18:00
  • 3
    @user30422, Если этот ответ решил Вашу проблему, не забывает отмечать его, как принято и/или upvote он вместо того, чтобы добавить спасибо комментарий. Это - способ, которым благодарность выражена на сайтах SE. –  terdon♦ 11.02.2013, 20:15

другое решение:

awk -F, '{$1=$1?P=$1:P;print}' OFS=,

наборы P к 1$, если 1$, не пустой. наборы 1$ к предыдущему P иначе

2
27.01.2020, 21:57

Теги

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