Вы можете сделать это в awk
. Например:
$ awk -vOFS="\t" '{
sub(/.txt:.*= */," ");
sub(/^.../,"",$1);
sub(/_split/, "\t",$1);
print $1,$2,$3
}' file
0001 00000000 0.0000 mW
0001 00000050 117.5261 uW
Это действительно не лучший инструмент для работы. Awk отлично подходит, когда вы хотите извлекать поля без изменений, он может стать громоздким, когда вам нужно их редактировать.
Вместо этого я бы использовал что-то вроде:
$ perl -lne '
@m=(/\D+(\d+)\D+(\d+).*=\s*([0-9.]+)\s+(\S+).*$/);
print join "\t", @m' file
0001 00000000 0.0000 mW
0001 00000050 117.5261 uW
journalctl --no-page
делает это, но очевидно, что это не работает для отдельных единиц.