Постоянное чтение с помощью ext4

Вы имеете в виду как это, просто предварительно ожидая текущий каталог к каждому имени файла?

ls -l | awk -v PWD=$PWD '{printf("%s %s/%s\n", $5, PWD, $9); }'

( -v просто импорт $PWD окружите переменную в awk сценарий).

Или что-то еще?


Хорошо, по-видимому, то, что Вы хотите,

$ cd /some/path/to/somewhere
$ <insert command here>
somewhere/file1 size1
somewhere/file2 size2
...

Это корректно?

Если так, изменение, в котором Вы нуждаетесь, является этим:

ls -l | awk -v PWD=$(basename $PWD) '{printf("%s/%s %s\n", PWD, $9, $5); }'

Если у Вас есть более старая оболочка, $() может не работать, в этом случае попробовать:

ls -l | awk -v PWD=`basename $PWD` '{printf("%s/%s %s\n", PWD, $9, $5); }'

вместо этого. У меня нет немедленного доступа ни к какой оболочке, которая не поддерживает $(), но я еще не могу думать где Ваш Illegal variable name ошибка прибыла бы из, когда это работает на меня.


Если это все еще не работает, опишите свою платформу, оболочку, версию awk и т.д. в Вашем вопросе - поток комментария становится довольно долгим, и у меня заканчиваются предположения :-)

1
09.01.2013, 17:39
2 ответа

Использование sed :

sed 's/^M//g' filename > newfilename
-121--161187-

1) Сравнение часов и минут отдельно:

awk -vt="10:15" -F"[: ]" '
  BEGIN{split(t,a,":")}
  $2<=a[1]&&$3<=a[2]&&$4>=a[1]&&$5>=a[2]
' <<_INPUT_
a 10:10 10:30
b 12:15 13:15
c 16:54 17:54
_INPUT_
a 10:10 10:30

2) Преобразование часов в минуты:

awk -vt="13:00" -F"[: ]" '
  BEGIN{split(t,a,":");t=60*a[1]+a[2]}
  60*$2+$3<=t&&60*$4+$5>=t
' <<_INPUT_
a 10:10 10:30
b 12:15 13:15
c 16:54 17:54
_INPUT_
b 12:15 13:15

3) Использование функции:

awk -vt="17:15" '
  function f(s){split(s,a,":");return(60*a[1]+a[2])}
  f($2)<=f(t)&&f($3)>=f(t)
' <<_INPUT_
a 10:10 10:30
b 12:15 13:15
c 16:54 17:54
_INPUT_
c 16:54 17:54
-121--197937-

Это была бы функция «ленивой инициализации» Ext4, которая обнуляет

Это позволяет быстрее создавать файловую систему, но запускает поток ядра с именем «ext4lazyinit» в фоновом режиме. Вы можете подтвердить, что это происходит, запустив « ps aux | grep ext4lazyinit ».

Процесс может занять несколько часов в зависимости от размера файловой системы.

0
28.01.2020, 02:08

можно попытаться использовать iostat и iotop наблюдать процессы выполняет io. Также можно включить вход io echo 1 > /proc/sys/vm/block_dump исследовать, что происходит более ясно

0
28.01.2020, 02:08
  • 1
    Быть в неактивном: sdb1 постоянно пишет 2-3M/s связанный с [jbd2/sdb1-8]. Однако sda1 только пишет несколько K, когда процесс [jbd2/sda3-8] инициировал. –  eez0 09.01.2013, 18:29
  • 2
    Что такое Ваш mount | egrep "sdb1|sda1". Кажется, что необходимо изменить фиксацию для monted раздела. –  dchirikov 09.01.2013, 18:52
  • 3
    я оставил это 1 ч в неактивном, и теперь когда я возвратился, это работает, как обычно, без записать все время. Возможно, это индексировало или что-то после формата? Но индексируя, что, если это ничего не имело? –  eez0 09.01.2013, 20:15

Теги

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