string - 在每行中添加连续的数字

标签 string bash awk

假设一个文本文件file包含多行文本字符串。

> cat file
foo bar baz
bar quux foo
foo baz quux

我想向每个第三列单词添加一个连续的数字(带前导数字,后跟下划线)。

> cat file | sought_command
foo bar 001_baz
bar quux 002_foo
foo baz 003_quux

我相信这可以简单地通过 awk 来实现 (awk '{printf("%03d ...)),但无法想出正确的方法代码。

最佳答案

您可以使用 sprintf 并将其分配给 $3,使用行号作为数字。

awk '$3=sprintf("%03d_%s",NR,$3)' file

foo bar 001_baz
bar baz 002_qux
foo baz 003_quux

关于string - 在每行中添加连续的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43810270/

相关文章:

linux - 分隔符范围线函数

Java 的字符串/数字/货币格式化功能

perl - 在 Perl 中如何获取字符串的长度?

string - 从文件中读取字符串并转换为 int

java - 如何识别字符串中重复字符的模式?

bash - scp 文件名中的变量不起作用?

bash - 大写 bash 变量

bash - 从另一个文件中删除包含 ID 的每一行

bash - 为什么 bash 的意外 EOF `"' 错误中有一个起始反引号

AWK 搜索标题模式并处理缺失的列