Используя GNU grep и тот же пример, что и в вашем вопросе, можно сделать следующее:
$ echo 'foo, bar, baz, qux' | grep -o '\bbaz\b.*'
baz, qux
Option -o
просит grep напечатать только ту часть строки, которая соответствует, {{1} } и \ b
обеспечивает соответствие baz
на границах слов.
Нет, ваш пример не сработает. Вы должны написать всю команду в одной строке. Подумайте о том, чтобы написать сценарий и просто вызвать его из cron.
Например:
$ cat mycron.bash
#!/bin/bash
find. -type f \( -name '*.wsp' -printf WSP -o -printf OTHER \) \
-printf ' %T@ %b :%p\0' | \
sort -zk 1,1 -k2,2rn | \
gawk -v RS='\0' -v ORS='\0' '
{du += 512 * $3}
du > 10 * (2^30) && $1 == "WSP" {
sub("[^:]*:", ""); print
}' | xargs -r0 rm -f
Тогда ваша запись в crontab будет выглядеть примерно так:
0 0 * * * mycron.bash