Просто для образования решение sed
sed '
1b #output 1st line (header)
$!N #add next line to operate 2 lines altogether
s/\(.*\)\n\(CARD.*\)/\2\n\1/ #move line with CARD to first place
/^CARD/D #delete line with CARD and go to start
s/^\(\([0-9]*\s*\).*\n\)\s\s*/\1\2/
#repeat 1st field of 1st line if empty in 2nd
/\n/{P;D} #print&remove 1st line, go to start
'
Когда вы запускаете команду в bash
, она запоминает местоположение этого исполняемого файла, поэтому ему не нужно каждый раз заново искать в ПУТЬ
. Поэтому, если вы запустите исполняемый файл, а затем измените его местоположение, bash
по-прежнему будет пытаться использовать старое местоположение. Вы должны подтвердить это с помощью hash -t pip3
, который покажет старое местоположение.
Если вы запустите hash -d pip3
, он скажет bash забыть старое местоположение и найти новое при следующей попытке.