在bash中的每一行中查找连续的以空格分隔的单个字符

use*_*018 0 linux bash perl awk sed

假设我有以下文件

Y M C A
cambridge m a
d m v office
t mobile
Run Code Online (Sandbox Code Playgroud)

并希望将其转换为

YMCA
cambridge ma
dmv office
t mobile
Run Code Online (Sandbox Code Playgroud)

即检测所有连续的单个字符,后跟不同长度的单个空格(大于2).例如,项目'dmv office',我们应检测'dm v'并将其转换为'dmv',但会保留't mobile store'完整(只有一个字符).
是否可以在bash中执行此操作,或者我必须使用像python这样的程序来执行此操作?

Tot*_*oto 5

Perl单线:

echo 'Y M C A' | perl -ple's/\b\w\K\s(?=\w\b)//g'
==> YMCA

echo 't mobile' | perl -ple's/\b\w\K\s(?=\w\b)//g'
==> t mobile
Run Code Online (Sandbox Code Playgroud)

当用单个单词字符包围时,这将替换空格.您可以替换\w[a-zA-Z],如果这对你更方便.