Você precisa fazer uso de grupos de captura. Capture (1) a primeira letra de uma palavra, (2) tudo até a primeira letra da segunda palavra, (3) a primeira letra da segunda palavra e troque (3) e (1).
Nos exemplos abaixo, é assumido que a linha começa com um caracter não-branco
Você poderia dizer:
sed 's/\(.\)\([^ ]* \)\(.\)//'
ou
sed -r 's/(.)([^ ]* )(.)//'
Por exemplo,
$ echo 'foo bar' | sed -r 's/(.)([^ ]* )(.)//'
boo far
$ echo 'one two' | sed -r 's/(.)([^ ]* )(.)//'
tne owo
O seguinte também lida com casos como espaços no início da linha e vários espaços entre as duas palavras:
sed -r 's/([^ ])([^ ]* +)(.)//'
Uma expressão perl correspondente seria:
perl -pe 's/(\S)(\S+\s+)(\S)/$3$2$1/'
Exemplos:
$ echo 'one two' | perl -pe 's/(\S)(\S+\s+)(\S)/$3$2$1/'
tne owo
$ echo 'one two' | perl -pe 's/(\S)(\S+\s+)(\S)/$3$2$1/'
tne owo
$ echo 'foo bar' | perl -pe 's/(\S)(\S+\s+)(\S)/$3$2$1/'
boo far
$ echo ' one two' | perl -pe 's/(\S)(\S+\s+)(\S)/$3$2$1/'
tne owo