替换选定的字符

替换选定的字符

如何用using替换[:space:]文件每一行中的第一个字符?\tsed

Input: 
AC 12 45
DC 56 89

Expected output:
AC    12 45
DC    56 89

(类似于sed "s/[:space]/'\t'/g"但不影响行中的其他空格)

答案1

要将替换仅应用于每行的第一个匹配项,您只需删除g(全局)修饰符,例如

sed 's/ /\t/' input

(POSIX 类[[:space:]]对于您的要求来说太过分了,因为它包含制表符)。


仅供参考,GNU 版本sed具有一些附加功能,例如通过数字明确指定要替换的匹配项,例如

$ sed 's/ /\t/1' input
AC      12 45
DC      56 89
$ sed 's/ /\t/2' input
AC 12   45
DC 56   89

答案2

你应该删除g

sed 's/ /\t/' file

如果没有g,sed 仅匹配行中的第一次出现。

相关内容