如何用using替换[:space:]
文件每一行中的第一个字符?\t
sed
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 仅匹配行中的第一次出现。