На самом деле вы не показываете, как вы добавляете регулярное выражение, поэтому я предполагаю, что вы используете тот же формат:=~ [A-Za-z]
. Это не сработает. Каждый язык имеет свой собственный синтаксис для сопоставления регулярных выражений. В awk
используется формат $target ~ /$regex/
, поэтому $1 ~ /[A-Za-z]/
.
BEGIN { FS = ";"; counter=0}
{
if (length($1) != 10 && length($1) != 12 && $1 ~ /[A-Za-z]/)
{
counter++
print counter, $1;
if (counter > 2){
print "Invalid input file";
exit;
}
}
}
Также в awk
,знак $
используется для обозначения полей , а не переменных . Таким образом, $counter
будет оцениваться как номер поля counter
. Если counter
равно 2
, то $counter
будет значением второго поля. И -gt
тоже не ахти. Просто используйте >
.
Вы можете указать столько расширений, сколько хотите, просто перечислите их отдельно. Например.:
* */1 * * * cd /home/alexalannunes/Downloads && ls *.deb *.rpm > log.txt && rm *.deb *.rpm
Если оболочка поддерживает раскрытие фигурных скобок, в котором работает crontab, вы можете указать несколько расширений, используя раскрытие скобок:
*.{rpm,deb,other_file}
В противном случае просто соедините несколько расширений.
*.rpm *.deb
Кроме того, вам не нужен отдельный ls
, rm
имеет подробный вывод с -v
, и вы должны добавить -f
, чтобы игнорировать несуществующие файлы и аргументы и никогда не запрашивать.
* */1 * * * rm -fv /home/alexalannunes/Downloads/*.{deb,rpm} > log.txt
или
* */1 * * * rm -fv /home/alexalannunes/Downloads/*.deb /home/alexalannunes/Downloads/*.rpm > log.txt