$ sed 's/[^|]*modesc=\([^ ]*\).*$/\1/' file
abc|123|bpp123
abc|123|pmk123
abc|123|pnj123
Esto usa sed
para reemplazar todo el último campo con el contenido después de modesc=
hasta el siguiente espacio.
$ awk -F '|' -vOFS='|' '{ sub(".*modesc=", "", $3); sub(".*", "", $3)} 1' file
abc|123|bpp123
abc|123|pmk123
abc|123|pnj123
Este awk
programa modifica la tercera columna con dos sustituciones. El primero elimina todo hasta modesc=
inclusive, y el segundo elimina todo después del primer espacio restante. El solitario 1
al final hará que awk
imprima el registro modificado (que puede ser reemplazado por{ print }
).
Para solo obtener la cadena después de modesc=
de la tercera columna de los datos originales (y nada más ), puede usar cualquiera de los comandos anteriores y luego canalizarlo cut -d '|' -f3
, o puede usar
sed 's/.*modesc=\([^ ]*\).*$/\1/' file
o
awk -F '|' -vOFS='|' '{ sub(".*modesc=", "", $3); sub(".*", "", $3); print $3 }' file
Isn't it a chicken and egg problem?
В некотором смысле, конечно.
How does the kernel loads these files
Нет. (Полностью модульное )ядро действительно не способно на это, по сути, вообще не может получить доступ к какому-либо диску, пока вы не загрузите соответствующие модули (ahci, scsi и т. д.)
Вы также можете спросить, как ядро загружает ядро... это невозможно, поэтому должно быть что-то еще.
Подобно загрузчику, который загружает за вас и ядро, и initrd/initramfs (, если применимо, -их можно поместить в один файл.)