linux - 在 Linux 中合并来自同一文件的列

标签 linux awk sed

我有一个这样的文本文件:

Name2 381 3923 1000
Name2 321 323  9000
Name2 121 212  1000
Name3 321 644  4444
Name3 111 342  4234
Name3 342 323  3232

我只想将前三列合并成这样:

Name2:381:3923 1000
Name2:321:323  9000
Name2:121:212  1000
Name3:321:644  4444
Name3:111:342  4234
Name3:342:323  3232

但是,我想保留文件中存在的任何其他列。我尝试使用 sed 和正则表达式,但我遇到的问题是我需要保留其他列,而简单地用空格代替冒号会弄乱它。

最佳答案

遵循 awk 可能会对您有所帮助。

awk '{sub(/ /,":");sub(/ /,":")} 1'  Input_file

解决方案 2: sed 解决方案。

sed 's/ /:/1;s/ /:/1'  Input_file

关于linux - 在 Linux 中合并来自同一文件的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49673391/

相关文章:

linux - Linux 中的透明大页面支持

bash (Linux) 中的 Python3.4 不提供文本着色

variables - 将 shell 变量传递给 gnuplot 中的 awk

php - MySQL MariaDB 服务器无法启动 kali linux

linux - shell脚本的开关

awk - 使用该列的最大值标准化列数据

linux - 在 linux 中包含特定单词的每一行之前引入一个新行

linux - 如何在模式前切割十六进制

xml - 使用 sed 替换 xml 标签

linux - 使用 sed 在文件中特定行的末尾添加包含斜杠的文本