我正在尝试编写一个bash脚本,该脚本将接受一个带有空格的文件,并输出相同的文件,但以逗号分隔。我知道如何用逗号替换空格,但遇到了一个问题:有些行的空格数可变。有些行包含2或3个空格,有些行包含多达7或13个空格。以下是我目前掌握的情况:
sed 's/ /,/g' $varfile > testdone.txt
$varfile是用户提供的文件名。
但我不知道如何解决变量空间问题。欢迎提出任何建议。谢谢您。
最佳答案
这不是sed
的工作。tr
更合适:
$ printf 'foo bar\n' | tr -s ' ' ,
foo,bar
-s
告诉tr
挤压多个引用。此外,您还可以使用tr -s '[:space:]' ,
或tr -s ' \t' ,
来处理空格或制表符。关于bash - Bash-读取文件并用一个逗号替换多个空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53730343/