awk条件行编号

时间:2016-01-24 19:20:55

标签: linux awk text-processing

我正在尝试将数字放在文件中的每一行之前,但前提是第二列(字段)中的值与前一行不同

输入文件:

11:10PM *Jane> login
11:15PM *Bob>  login
11:16PM *Bob>  logout
11:45PM *Betty> login
01:20AM *John>  login

输出:

1. 11:10PM *Jane> login
2. 11:15PM *Bob>  login
   11:16PM *Bob>  logout
3. 11:45PM *Betty> login
4. 01:20AM *John> login

2 个答案:

答案 0 :(得分:3)

利用变量在 awk 中的默认值这一事实:

public function getDate() {
    $month = $this->month;
    return $this->year . '-' . $month . '-' . $this->day;
}

public function getDbFormatedDate() {
    if (checkdate($this->month, $this->day, $this->year) || $this->strtotime(getDate())>strtotime(date("Y-m-d"))){
        $dateDeadline    = date_create($this->getDate());
        $this->BirthDate = date_format($dateDeadline, 'Y-m-d');

        Yii::$app->session->setFlash('success', Yii::t('app', 'Zmiany w profilu zostały zapisane'));
    } else {
        Yii::$app->getSession()->setFlash('error', 'nie ma takeij daty');
    }
}

这使用 n 来记住已经看到了多少条目,最后来记住上次看到的条目。

答案 1 :(得分:3)

<SYS>
     <Hamburger Rolls>
            <Wheat>
	         <Price>2.99</Price>
                 <ItemID>1364</ItemID>
             </Wheat>
             <White>
                 <Price>1.99</Price>
                 <ItemID>1363</ItemID>
             <White>
     </Hamburger Rolls>