У меня есть этот код, который показывает файлы, которые были изменены за последние 10 часов.Поиск в домашней директории с awk
Это прекрасно работает; однако, я хочу, чтобы это делалось только в каталоге home
. Я попробовал поставить $HOME
, как я нашел с другими примерами AWK, взятыми из определенного каталога; однако это не сработало. Я понимаю, что это не лучший способ сделать это, но для меня это упражнение, и должно использоваться grep
; в противном случае я бы определенно использовал find
.
Это, вероятно, довольно просто, но я новичок в bash
, поэтому это довольно запутанно для меня. Любая помощь будет оценена по достоинству. Благодаря!
echo "The files modified less than 10 hours ago are:"
ls -algG --time-style=+%s | grep ^[^d] | awk -vlimit=$(date +%s -d '10 hours ago') '$4 > limit { print substr($0, index($0, $4) + length($4) + 1) }'
Вы попробовали 'ls -algG --time-style = +% s $ {HOME} | grep^[^ d] | awk -vlimit = $ (date +% s -d '10 hours ago ')' $ 4> limit {print substr ($ 0, index ($ 0, $ 4) + length ($ 4) + 1)} ''? – devnull
О, ты потрясающий, спасибо @devnull! :) – user2963286
Вам никогда не понадобится grep с awk, так как awk может делать сравнения RE на своем собственном. –