我正在尝试编写一个 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 - 读入文件并用一个逗号替换多个空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53730343/