我正在尝试编写一个bash脚本,该脚本将接收带有空格的文件并输出相同的文件,但以逗号分隔.我想出了如何用逗号替换空格,但我遇到了一个问题:有些行有可变数量的空格.有些行包含2或3个空格,有些包含多达7或13个.这是我到目前为止所拥有的:
sed 's/ /,/g' $varfile > testdone.txt
Run Code Online (Sandbox Code Playgroud)
$ varfile是用户提供的文件名.
但我不确定如何解决变量空间问题.欢迎任何建议.谢谢.
这不是一份工作sed. tr更合适:
$ printf 'foo bar\n' | tr -s ' ' ,
foo,bar
Run Code Online (Sandbox Code Playgroud)
该-s告诉tr压扁多次出现.此外,您可以概括tr -s '[:space:]' ,(将替换换行符,可能不合适)或tr -s ' \t' ,处理空格或制表符.