我正在尝试编写一个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/

10-16 11:44