将每行的第一个空格替换为制表符

Cœu*_*œur 3 macos bash perl whitespace sed

在 macOS 命令行上,如何用制表符替换文件每一行中第一次出现的空格?

macOS 上可用工具的示例:bash 3.2BSD sed、 awk、tr、perl 5、python 2.7、swift 4 等。

我试过:

sed 's/^\([^ ]*\) /\1\t/' filename
Run Code Online (Sandbox Code Playgroud)

但我得到的不是制表符,而是字符“t”。

Cœu*_*œur 5

好的答案都在评论里了。以下是一些学分:

感谢 Leon 和 Inian 提供的解决方案:

sed 's/ /'$'\t''/' filename
Run Code Online (Sandbox Code Playgroud)

感谢 Sundeep 提供的解决方案:

perl -pe 's/ /\t/' filename
Run Code Online (Sandbox Code Playgroud)

感谢 Sundeep 找到重复的问题,它给出了这个字面解决方案,其中替换字符串是 bash 中通过Ctrl+获得的选项卡VTab注意:从 Stack Overflow 复制粘贴它不起作用

sed 's/ / /' filename
Run Code Online (Sandbox Code Playgroud)