Как заменить все значения (все NA) в столбце на числовую часть имени файла?

Si no tiene problemas para obtener esa información del sistema operativo, con tuptime puede ver un informe completo del tiempo total del sistema Linux, incluidas las caídas del sistema.

Por ejemplo, como salida predeterminada y reanudar:

# tuptime

System startups:    8   since   08:32:29 AM 11/24/2016
System shutdowns:   3 ok   -   4 bad
System uptime:      99.99 %   -   1 year, 195 days, 5 hours, 47 minutes and 14 seconds
System downtime:    0.01 %   -   1 hour, 6 minutes and 34 seconds
System life:        1 year, 195 days, 6 hours, 53 minutes and 48 seconds

Largest uptime:     240 days, 7 hours, 38 minutes and 10 seconds   from   08:41:51 AM 02/07/2017
Shortest uptime:    18 hours, 15 minutes and 14 seconds   from   02:26:05 PM 02/06/2017
Average uptime:     70 days, 0 hours, 43 minutes and 24 seconds

Largest downtime:   45 minutes and 15 seconds   from   10:00:01 AM 03/14/2018
Shortest downtime:  5 seconds   from   02:26:00 PM 02/06/2017
Average downtime:   9 minutes and 31 seconds

Current uptime:     85 days, 4 hours, 41 minutes and 1 second   since   10:45:16 AM 03/14/2018

Alternativamente, es posible obtener una lista con todos los eventos históricos con el argumento de la lista, en la que se indica cómo fue el evento de apagado, mal (un bloqueo )o bien (después del proceso de apagado):

]

# tuptime -l

Startup:  1  at  08:32:29 AM 11/24/2016
Uptime:   46 days, 16 hours, 52 minutes and 32 seconds
Shutdown: BAD  at  01:25:01 AM 01/10/2017
Downtime: 5 minutes and 10 seconds

Startup:  2  at  01:30:11 AM 01/10/2017
Uptime:   27 days, 12 hours, 55 minutes and 49 seconds
Shutdown: OK  at  02:26:00 PM 02/06/2017
Downtime: 5 seconds

Startup:  3  at  02:26:05 PM 02/06/2017
Uptime:   18 hours, 15 minutes and 14 seconds
Shutdown: OK  at  08:41:19 AM 02/07/2017
Downtime: 32 seconds

Startup:  4  at  08:41:51 AM 02/07/2017
Uptime:   240 days, 7 hours, 38 minutes and 10 seconds
Shutdown: BAD  at  05:20:01 PM 10/05/2017
Downtime: 3 minutes and 17 seconds

Startup:  5  at  05:23:18 PM 10/05/2017
Uptime:   7 days, 14 hours, 56 minutes and 43 seconds
Shutdown: BAD  at  08:20:01 AM 10/13/2017
Downtime: 11 minutes and 35 seconds

Startup:  6  at  08:31:36 AM 10/13/2017
Uptime:   25 days, 1 hour, 7 minutes and 4 seconds
Shutdown: OK  at  08:38:40 AM 11/07/2017
Downtime: 39 seconds

Startup:  7  at  08:39:19 AM 11/07/2017
Uptime:   127 days, 1 hour, 20 minutes and 42 seconds
Shutdown: BAD  at  10:00:01 AM 03/14/2018
Downtime: 45 minutes and 15 seconds

Startup:  8  at  10:45:16 AM 03/14/2018
Uptime:   85 days, 4 hours, 42 minutes and 9 seconds

Tenga en cuenta que last rebooty journalctl --list-bootsobtienen la información de los registros, y estos registros tienen una vida máxima. En cambio, tuptimealmacena la información en un archivo db específico dedicado a ella.

Para la instalación, suponiendo que use Linux, el paquete está disponible en Debian y sus derivados:

# apt-get install tuptime

Si no, puede obtener el script de instalación "tuptime -install.sh" del repositorio :https://github.com/rfrail3/tuptime/

1
05.06.2019, 22:59
2 ответа

Использование скрипта bash:

#!/bin/bash

tmp_d=$(mktemp -q -d -t 'replace.XXXXX' || mktemp -q -d)

for f in chr*.out; do
    tmp_f="${tmp_d}/$f"
    n="${f#chr}"
    n="${n%.out}"
    awk -v n="$n" '$3 == "NA" { $3=n }1' "$f" > "$tmp_f"
    mv "$tmp_f" "$f"
done

rm -r "$tmp_d"

Сначала мы создаем каталог tmp, так как мы будем создавать файлы tmp

Затем мы прокручиваем каждый chr*.outфайл.

  • Создайте переменную для этого файла в каталоге tmp
  • удалить префикс chr
  • удалить суффикс .out
  • Затем
  • awkзаменит любой NAв третьем столбце числом, извлеченным из имени файла, и сохранит его в файле tmp
  • заменить исходный файл файлом tmp

После завершения цикла мы удаляем каталог tmp.

всего, что связано с tmp, можно избежать, если у вас есть GAWK, который может использовать опцию -iin place

1
27.01.2020, 23:41

Я предлагаю один sedскрипт для обработки всех файлов.

sed -i 's/         NA  /          1  /' chr{1..22}.out 
0
27.01.2020, 23:41

Теги

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