如何将文本文件换行符替换为', '实现数字逗号分隔?
解决单行数字转逗号分隔一行的问题
嘿,我来帮你搞定这个小问题~你遇到的问题根源在于**tr是单字符替换工具**,它只能实现单个字符之间的替换。当你执行tr "\n" "', '"时,它只会把换行符替换成第二个参数里的第一个字符',剩下的, 会被直接忽略,这就是为什么结果里全是单引号的原因啦。
下面给你几个简单好用的解决方案,任选其一就行:
方法1:用paste(最简洁)
paste命令天生就适合做这种行合并的操作,一行命令就能搞定:
paste -sd ', ' file.txt > file2.txt
-s:表示把文件的所有行合并成单行输出-d ', ':指定行与行之间的分隔符为,
方法2:用sed
如果习惯用sed,可以用这个脚本把所有换行替换成分隔符:
sed ':a;N;$!ba;s/\n/, /g' file.txt > file2.txt
简单解释下这个脚本:
:a定义一个标记位N把下一行内容追加到当前缓冲区$!ba如果不是最后一行,就跳回标记位a继续读取- 最后
s/\n/, /g把所有换行符替换成,
方法3:用awk
awk的写法也很灵活,还能避免开头或结尾多出分隔符的问题:
awk '{printf "%s%s", sep, $0; sep=", "}' file.txt > file2.txt
逻辑很清晰:
- 第一次处理行时,
sep是空字符串,直接打印第一个数字 - 之后把
sep设为,,后续每一行都先打印分隔符再打印数字
执行完上面任意一个命令后,你就能得到想要的结果:
1034008, 1034043, 10340431, 1034051
内容的提问来源于stack exchange,提问作者Sebastian
相关产品推荐
相关产品推荐

