我有这样的行:
,,,,,,,,,foo,bar
,,,,,x,,blabla,
使用regex,是否可以仅用相同数量的空格替换行首的逗号,如果可以,如何?
sed
例子:
$ echo ',,,,,,,,,foo,bar
,,,,,x,,blabla,' | sed ':r;s/^\(,*\),/\1 /;tr'
foo,bar
x,,blabla,
使用 Java,积极回顾:
String s = ",,,,,,,,,foo,bar";
System.out.println(s.replaceAll("(?<=^,+),", " "));
// ' foo,bar'
使用 Python:
> import re
> s = ',,,,,,,,,foo,bar'
> re.sub("^,+", lambda m: len(m.group(0)) * ' ', s)
' foo,bar'
与perl
:
perl -pe 's/^,+/q{ } x length $&/e' <<< ',,,,,,,,,foo,bar'