linux - 将文本文件重新格式化为一行字符串

标签 linux unix awk sed grep

<分区>

这是我的示例文件

1321|4
512|2
1056|2
314|16
69|1
239|2
0|0
0|0
0|0
0|0
534|0

但我需要文件的格式如下:

1321|4|512|2|1056|2|314|16|69|1|239|2|0|0|0|0|0|0|0|0|534|0

我用 awk 试了试运气,但我没有得到可用的结果,以前从未使用过它,也无法将示例和手册纳入工作代码中。我怎样才能达到所需的格式?任何帮助都会很棒。

最佳答案

我不确定 awk 是最好的锤子,但是

awk '{ printf("%s%s", sep, $0); sep = "|" }' sample.txt

应该这样做。

这里是 Jotne 根据评论改进的版本,添加了最后一个换行符:

awk '{ printf("%s%s", sep, $0); sep = "|" } END { print "" }' sample.txt

关于linux - 将文本文件重新格式化为一行字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25201009/

相关文章:

用C语言创建一个随机字符

linux - 文件列表

linux - 使用 awk 在不同行上对多个字段进行数学运算

bash - 如何使用 bash 和 printf 转换日期格式?

c - shm_open : Differences between Mac and Linux

ruby-on-rails - 尝试 Rails 服务器后终端出现错误

linux - 当一个人想要编写一个工具集时,将头文件放在/usr/include 并将 'foreign/user' 创建的代码放入/usr/local/lib 是标准做法吗?

linux - 带有命令行 unix shell 脚本的 awk 命令

unix - 如何在现有 csv 文件的第一列中包含文件名

linux - 在 awk 中打印搜索模式