Читая между строк, я предполагаю, что вы хотите сделать вашу дизассемблированную версию более читаемой, удалив адреса в строках, которые не упоминается в прыжках и подобных инструкциях. Этот awk предполагает, что число в предпоследнем столбце является адресом, когда последний столбец начинается с символа «<». Он считывает разборку один раз, запоминая все такие адреса в массиве, а затем второй раз заменяя адрес в начале строки, если он не появился.
$ objdump -d /bin/ls >/tmp/a
$ awk '
NR==FNR { if($NF ~ /</) address[$(NF-1)] = 1; next }
$1 ~ /:/ { if(!address[substr($1,1,length($1)-1)]){
i = index($0,":")
printf "%*s%s\n",i," ",substr($0,i+1)
next }
}
{ print }
' /tmp/a /tmp/a
Что происходит, когда вы запускаете следующую команду:
sudo service network-manager start