假设我有以下文件
Y M C A
cambridge m a
d m v office
t mobile
并想将其转换为
YMCA
cambridge ma
dmv office
t mobile
即检测所有连续的单个字符后跟不同长度(大于两个)的单个空格。例如,项目'd m v office',我们应该检测'd m 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
这会在被单个单词字符包围时替换空格。如果您更方便,可以将 \w
替换为 [a-zA-Z]
。
关于linux - 在 bash 的每一行中查找连续的空格分隔的单个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42072719/