如何在 Linux 终端中使用 grep 或 awk 命令在文本文件中添加增量整数行?

如何在 Linux 终端中使用 grep 或 awk 命令在文本文件中添加增量整数行?

我有一个包含 1000 万多行的文本文件。该文件如下所示:

1902400023
1902400029
1902400031
1902400032

我想添加一个标题、增量 ID 号和一个常量 SHORTCODE。预期结果:

ID,MSISDN,SHORTCODE
1,1902400023,1
2,1902400029,1
3,1902400031,1
4,1902400032,1

这将继续直到文件末尾并写入另一个文件。

答案1

我想你需要awk如下代码

awk 'BEGIN { OFS = ","; header="ID,MSISDN,SHORTCODE" } NR == 1 { print header } 
           { $2 = $0; $1 = NR; $3 = 1; }1' file

在该BEGIN子句中,我们将输出字段分隔符设置为,运算符并初始化标头字符串。处理文件时,我们在第一行插入标题,并在后续行中插入您在OP中所示的行。NR是一个特殊变量,用于awk跟踪我们用于增量计数器的行号。

答案2

在这里您可以使用如下 awk 命令来添加行号:

$ awk '{printf("%d:%s\n", NR, $0)}' millionlinetextfile > linenumberedfile

相关内容