bash - Bash - 读入一个文件并用一个逗号替换多个空格
问题描述
我正在尝试编写一个 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' ,
处理空格或制表符。
推荐阅读
- css - 创建单个“屏幕”网络应用程序的问题
- json - 我可以在推送对象中使用 map() 吗?
- ios - 蓝牙 iPad 应用程序连接问题
- python - 如何通过 python 将此纯文本数据传输到 json 数据?
- python - 机器人回原点
- p5.js - 用作音频播放头的动画矩形未正确显示
- encryption - 在发送电子邮件之前发送默认加密选项时,Outlook onsend 插件不会触发
- node.js - Playwright 的 Twilio 一次性密码:Node.js(使用 github 的 2FA 自动登录)
- rust - 这个 mem::transmute::<&str, &'static str>(k) 安全吗?
- arrays - 4 次调用方法后方法前置条件失败 - 数组中的值唯一性