Паника ядра — это либо ошибка, обнаруженная программным обеспечением, либо некоторая аппаратная ловушка, которая сработала и была обнаружена ядром как находящаяся в коде ядра. Единственная безопасная вещь для ядра — это паника (, т. е. добровольная остановка ). Это может быть вызвано плохой памятью, из-за которой ядро выполняет неправильное содержимое памяти как код, или плохой памятью, из-за которой ядро получает неверные данные, что приводит к некоторой ошибке или обнаруженному несоответствию.
Ошибка страницы на уровне ядра также вызвана неправильными данными ядра; ядро пытается получить доступ к несуществующей странице, вероятно, потому, что оно использует неверный адрес, извлеченный из памяти. В этом случае все, что знает ядро, это то, что оно использовало неверный адрес; можно проследить код с помощью отладчика, чтобы понять, как это началось, но вы не уйдете далеко назад, прежде чем столкнетесь с несколькими причинами.
В результате все, что вы можете сделать, если у вас возникнут ошибки страниц на уровне ядра, это протестировать оборудование!
попробуй
awk '{$1=$1*10 ; print }'
это изменит первый параметр и напечатает всю строку.
чтобы продолжить форматирование до 3 цифр, используйте
awk '{$1=sprintf("%.3f",$1*10);print;}'
Протестировано с помощью Python
#!/usr/bin/python
import re
k=open('p.txt','r')
for i in k:
k=re.sub(' +',' ',i).split(' ')
print float(k[0])*10,k[1],k[2]
выход
-173.644 0.00000000 0.00000000
-172.703 0.00000000 0.00000000
-171.761 0.00000000 0.00000000
-165.173 0.00000000 0.00000000
-164.232 0.00000000 0.00000000
$ < infile tr \- _ |
dc -e "
[q]sq
[SMlN1+sNz1<a]sa
[LMn32anlN1-dsN0<b]sb
[?z0=q0sNlax.1/n32anlbx[]pclcx]sc
3klcx
"
Выход:
-173.644 0 0 0 0 0 0
-172.703 0 0 0 0 0 0
-171.761 0 0 0 0 0 0
-165.173 0 0 0 0 0 0
-164.232 0 0 0 0 0 0
Краткое пояснение:
dc
— калькулятор с обратной польской записью RPN
, который хранит данные в своем основном стеке. Храните в именованном стеке M полей текущей строки, пока не дойдете только до одного постоянного. Разделите его.1 == умножьте на 10 И примените масштабирование к результату. Теперь повторно извлеките стек M и поместите обратно в основной стек поля текущей строки, которые остались неизмененными. Продолжайте выводить их на стандартный вывод, одновременно извлекая их из стека M. В конце файла или при достижении пустой/пустой строки, в зависимости от того, что произойдет раньше, мы выходим.