Квантификаторы регулярных выражений плохо работают с locate

[118402] С помощью GNU [118888] sed[118889] можно было бы сделать что-нибудь вроде:[12182] (то есть собрать [118890]cat<'the-file'[118891]] команды (при необходимости экранируя кавычки в имени файла) и использовать [118892]e[118893] флаг команды [118894]s[118895] (которая специфична для GNU) для оценки этой команды).[118405].
1
02.10.2015, 10:50
1 ответ
timeStart=`date --date='8AM' +"%s"`
timeStop=`date --date='23:59:00' +"%s"`
now=`date +"%s"`

if (($now >= $timeStart && $now < $timeStop))
then
        #CRON JOBS BETWEEN 8AM AND 12PM
        echo "NO BEER"
else
        #CRON JOBS OUTSIDE OF 8AM AND 12PM
        echo "DRINK BEER"
fi
-121--108384-

В awk «тело» должно иметь следующий синтаксис:

condition{command}

При выполнении условия команда выполняется с текущей строкой. Это также может быть:

{command}

... без условия , поэтому оно будет выполнено для каждой строки . Это также справедливо:

condition

... без команды , то awk просто печатает $0 , следовательно, всю строку, когда выполняется условие .


Ваше awk должно выглядеть следующим образом:

awk 'BEGIN{print "ID|Name|Designation|Department|Salary";OFS="|"} 
  $1>200{$1=$1;print} END{print"------------------------"}' file

Примечание $1 = $1 . Это необходимо, поскольку изменяется только разделитель выходного поля. Поэтому вам нужно будет либо печатать поля один за другим ( $1, $2,... ) или принудительно восстановите запись на $ n = $ n .

-121--157468-

Попробуйте --regex (без «p»), а не -r (он же --regexp ). Это указывает найти для использования расширенных регэкспов, а не базовых.

locate --regex "^/var/lib/tomcat[0-9]{1,2}/" -l 10 

либо побег { и } с \, чтобы сделать их специальными в базовом регексе.

3
27.01.2020, 23:27

Теги

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