Bash - 读入文件并用一个逗号替换多个空格

标签 bash unix

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

相关文章:

bash - 通过 ssh 运行多个命令并将输出存储在不同的文件中

java - 将 Windows 迁移到 Linux Java Web 应用程序

unix - 带有开始和结束时间(分钟)的 Cron 模式

c - 如何找到任何PC的端口号?

mysql - 更改 mysql 转储以不包含 auto-inc 列

bash - 使用 find、wc 和 sed 来计算行数

linux - 每日 grep 和输出 STATUS

linux - Grep 变量模式匹配

bash - 将 SSH 流作为 Perl 脚本输入而不是物理文件

linux - 如何在 Bash 中逐行打印时对数据进行排序