Вернуть только расширенная часть bash glob [дубликат]

El problema es físico :el procesador + GPU están produciendo más calor del que la computadora portátil puede disipar, por lo que se sobrecalienta y, en última instancia, falla. (¿El bloqueo parece que la computadora portátil se está apagando por sobrecalentamiento, o en realidad se bloquea debido a la corrupción de datos inducida por sobrecalentamiento -? En otras palabras, ¿simplemente se apaga por completo una vez que se calienta demasiado, o ve fallas gráficas o algún otro comportamiento extraño?)

Las únicas soluciones de software para eso serían restringir la producción de calor, lo que significaría restringir el rendimiento del sistema. Por ejemplo, podría usar cpufreq seto cpupower frequency-setcon las opciones apropiadas para limitar la frecuencia de reloj máxima de su CPU y usar nvidia-settingspara configurar la GPU a un nivel de rendimiento más bajo.

Una solución real probablemente sería una física :para empezar,asegúrese de que nada esté bloqueando las ranuras utilizadas para enfriar el aire y límpielas si parece que están obstruidas con polvo. Dado que se trata de una computadora portátil, abrirla y limpiar los disipadores de calor más a fondo no es tan fácil como con los sistemas de escritorio y probablemente anularía la garantía si todavía hay una.

Si el portátil todavía está en garantía, recomendaría ponerse en contacto con el soporte del proveedor y describir el problema. Podría ser que el disipador de calor no esté en buen contacto térmico con el procesador y/o la GPU, y sería necesario abrir la computadora portátil para volver a colocar el disipador de calor (s )correctamente.

Si comienza a pensar en abrir el cuaderno usted mismo, tenga mucho cuidado e intente encontrar la mayor cantidad de información posible sobre la tarea en Internet primero, ya que el interior de un cuaderno es un poco más frágil que las partes correspondientes. en un escritorio normal. Un video de Youtube que muestre los pasos y las técnicas necesarias para su modelo específico sería un gran hallazgo. Un manual de servicio del proveedor de hardware también sería bueno; sin embargo, no todos los proveedores hacen que los manuales de servicio se puedan descargar libremente.

6
08.07.2019, 11:50
4 ответа

Подход, основанный на оболочке Стивена -, вероятно, самый простой, но вы также можете использовать что-то вродеsed:

for j in hes*.c
do
    printf '%s\n' "$j" | sed -E 's/^hes(.*)\.c$/\1/'
done
1
27.01.2020, 20:27

Вот еще один подход, который вы можете использовать, используя printfи нарезая массив:

for f in hes*; do printf '%s\n' "${f[@]:3:-2}"; done

Также с использованием PE:

for f in hes*; do tmp="${f%.c}"; printf '%s\n' "${tmp:3}"; done
1
27.01.2020, 20:27

Предполагая, что имеется один *, мы можем написать Perl-скрипт expandstarдля его расширения

#!/usr/bin/perl
my $a=shift;                               ## a='he*.c'  for example
my $b=($a=~s/\*/(.*)/gr);                  ## b='he(.*).c'
for( glob($a)){                            ## for all files matching a
   print s/$b/$1/r,"\n"                   ##   print after substituting
}

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

$ expandstar 'he*.c'                       ## dont forget '...'
sa1
sa2

Если вы предпочитаете онлайн-пользователей (, позор вам):

perl -E '$a=$b=shift; $b=~s/\*/(.*)/; say s/$b/$1/r for glob($a)' 'he*.c'
0
27.01.2020, 20:27

Это не полностью общий ответ, как в «покажи мне только расширение с подстановочными знаками», но вы можете использовать функции расширения параметров оболочки , чтобы удалить фиксированные части вашего глобуса:

j=${j#hes}
echo ${j%.c}

Это удаляет фиксированные «hes» в начале j, а затем фиксированные «.c» в конце j.

5
27.01.2020, 20:27

Теги

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