连续替换 CSV 文件中的空值

Ste*_*ice 4 regex perl sed

我有一行文字,如:

value,value,,,value,value
Run Code Online (Sandbox Code Playgroud)

我希望用不同的值替换两个空值。就像是:

value,value,hello,hello,value,value
Run Code Online (Sandbox Code Playgroud)

我目前正在尝试类似的东西:

sed -e 's/^,/hello,/' -e 's/,$/,hello/' -e 's/,,/,hello,/g'
Run Code Online (Sandbox Code Playgroud)

这会在开头、结尾和中间捕获空白值。但是,它不会连续捕获两个连续的空白值。如何更新正则表达式模式,以便在中间出现无限数量的连续空白值?

mhy*_*itz 5

这个 perl one-liner 怎么样:

echo ',value,,,value,' | perl -pe 's/^(?=,)|(?<=,)(?=,|$)/hello/g'
# hello,value,hello,hello,value,hello
Run Code Online (Sandbox Code Playgroud)