sed -s 's/\s\{1,\}/,/g' input.txt > output.txt
输入的输出是
A,B,10,C,d,e,f,g
H,I,88,J,k,l,m,n
0,P,3,Q,r,s,t,u
解释:
sed -s 's/<searchText>/<replacetext>/<flags>'
搜索文字\s\{1,\}
\s 匹配任何空格 \{1,\} 匹配 1 个或多个连续字符。
替换文本, - 替换为逗号
标志g 替换给定行上的所有匹配项。
编辑:
你只想把前4个空格改成','然后这个sed
sed -s 's/\(\S*\)\s*\(\S*\)\s*\(\S*\)\s*\(\S*\)\s*/\1,\2,\3,\4,/' input.txt > output.txt
应该可以。
解释:
\(\S*\)\s* 重复 4 次。它首先匹配 \S* 所有非空白字符并保存值(因为 \( 和 \) 围绕该字段。\s* 然后匹配所有空白字符。4 组 4 次。
现在替换为\1,\2,\3,\4,。这意味着取第一个保存的值\1加一个逗号',然后取第二个保存的值\2等等。
你得到的输出是:
A,B,10,C,d e f g
H,I,88,J,k l m n
0,P,3,Q,r s t u
您应该能够通过遵循该模式轻松修改替换的空格数。