поиск ack/grep и вид датой модификации

/dev/sdb5 является все еще другим разделом? Затем то, что необходимо сделать, любой повторно делят пространство и комбинируют/dev/sdb4 с/dev/sdb5.

О, я предполагаю, что ничто не находится в/dev/sdb5, который важен, потому что Вы - его попытка быть уничтоженными в процессе.

Иначе, все еще разрушительный:

 - pvcreate /dev/sdb5
 - vgextend ..... /dev/sdb5
 - lvextend .....
 - then e2resize to resize the filesystem
7
11.10.2014, 03:49
2 ответа

Ни ack, ни grep не имеют представления о датах модификации файла. Для этого необходимо сначала сгенерировать список файлов, а затем отсортировать их по дате модификации.

Вы можете использовать xargs, чтобы запустить вывод либо ack, либо grep в другую команду, которая предоставит даты модификации. Для указания дат модификации можно использовать stat.

Пример

$ grep -Rl awk * | xargs -n 1 stat --printf "%y ------ %n\n"
2013-11-12 10:06:16.000000000 -0500 ------ 100855/tst_ccmds.bash
2013-11-13 00:32:11.000000000 -0500 ------ 100911/cmd.bash
2013-11-23 03:16:17.000000000 -0500 ------ 102298/cmd.bash
2013-12-14 20:06:04.467708173 -0500 ------ 105159/cmd.txt
2013-12-16 03:20:48.166016538 -0500 ------ 105328/cmds.txt
2013-01-14 14:17:39.000000000 -0500 ------ 106932/red5-1.0.1.tar.gz

ПРИМЕЧАНИЕ: Этот метод покажет только имена файлов, которые соответствовали вашему запросу вместе с датой модификации.

7
27.01.2020, 20:16

С помощью инструментов GNU:

grep -H something * | awk -F: '{"date -r \""$1"\" +\"%F %R\"" | getline d; print d,$0}' | sort -n

или

ack something | awk -F: '{"date -r \""$1"\" +\"%F %R\"" | getline d; print d,$0}' | sort -n

для этого используется awk, чтобы отделить имя файла от обычного вывода grep, и awk вызывает date, чтобы получить дату файлов. grep получает опцию -H, чтобы гарантировать, что имя файла будет отображено на выходе, даже если в командной строке появится только одно из них.

В качестве примера вывода:

$ grep setupcon /etc/init.d/* | awk -F: '{"date -r \""$1"\" +\"%F %R\"" | getline d; print d,$0}' | sort -n
2011-12-05 12:05 /etc/init.d/keymap.sh:# If setupcon is present, then we've been superseded by console-setup.
2011-12-05 12:05 /etc/init.d/keymap.sh:if type setupcon >/dev/null 2>&1; then
2011-12-08 18:00 /etc/init.d/console-setup:     if setupcon --save; then
2011-12-08 18:00 /etc/init.d/console-setup:test -f /bin/setupcon || exit 0
2012-04-28 02:41 /etc/init.d/kbd:if which setupcon >/dev/null
2012-09-30 18:02 /etc/init.d/keyboard-setup:    if setupcon -k 2>/dev/null; then
2012-09-30 18:02 /etc/init.d/keyboard-setup:test -f /bin/setupcon || exit 0

Объяснение команд awk

  • -F:

    Это устанавливает разделитель полей на :, чтобы первым полем было имя файла. (Надо надеяться, что само имя файла не содержит двоеточия.)

  • "дата -r \""$1"\" +\"%F %R\"". | getline d

    Запускается дата -r имя файла +"%F %R", чтобы получить дату модификации файла в форме, подходящей для сортировки. Дата хранится в переменной d.

  • распечатывает d,$0

    Это распечатывает данные, за которыми следует строка вывода из grep.

4
27.01.2020, 20:16

Теги

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