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这样的程序来执行此操作?
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],如果这对你更方便.