使用 awk 连接单个 .txt 文件中的 2 列并用“:”分隔?

dam*_*l10 2 bash awk

我有大约 4000 万行制表符分隔的 .txt 文件,其中包含以下列:

1   rs58108123  10583
1   rs58108140  10611
1   rs58123442  13302
...
Run Code Online (Sandbox Code Playgroud)

我需要在第 1 列位置将第 1 列和第 3 列合并为一列。这是所需的输出:

1:10583 rs58108123
1:10611 rs58108140
1:13302 rs58123442
...
Run Code Online (Sandbox Code Playgroud)

据我了解,这可以使用 awk 命令来完成。我对命令行非常陌生,因此我无法弄清楚完成此任务所需的规范。如果您能提供任何可能的解决方案的解释,我们将不胜感激!

非常感谢!!

Nic*_*ing 5

干得好:

awk '{print $1":"$3"\t"$2}' < infile.txt 
Run Code Online (Sandbox Code Playgroud)

这将打印 Column $1:Column $3,后跟制表符“\t”,然后打印 Column $2。

> outfile.txt您可以通过在命令末尾添加来将输出保存到文件中。

您可以在这里找到更多简单 awk 语法的示例:http://www.thegeekstuff.com/2010/01/awk-introduction-tutorial-7-awk-print-examples/