如何用相同长度的唯一数字替换特定长度的字符

Posted

技术标签:

【中文标题】如何用相同长度的唯一数字替换特定长度的字符【英文标题】:How to replace a particular length of characters with same length of unique digits 【发布时间】:2017-07-23 09:47:53 【问题描述】:

我想使用 UNIX 命令将文件 file.txt 中的 16 位数字替换为 1111111111111111,即 16 乘以 1

【问题讨论】:

您为解决这个问题做了哪些尝试? I want to replace 16 digits in a file file.txt with 1111111111111111 i.e. 16 times 1 using UNIX command 当然!没问题! 【参考方案1】:

试试这个 -

sed -E 's/[0-9]16/1111111111111111/g' f

【讨论】:

【参考方案2】:

Perl:

perl -plE 's/\b\d16\b/q1x16/ge' < file.txt

来自

line A 222222222222222   and 222222222222222    # fifteen
line B 3333333333333333  and 3333333333333333   # sixteen
line C 66666666666666666 and 66666666666666666  # seventeen

生产

line A 222222222222222   and 222222222222222    # fifteen
line B 1111111111111111  and 1111111111111111   # sixteen
line C 66666666666666666 and 66666666666666666  # seventeen

还有

perl -plE 's/\b(\d+)\b/q1 x length($1)/ge'

从相同的输入会产生

line A 111111111111111   and 111111111111111    # fifteen
line B 1111111111111111  and 1111111111111111   # sixteen
line C 11111111111111111 and 11111111111111111  # seventeen

【讨论】:

以上是关于如何用相同长度的唯一数字替换特定长度的字符的主要内容,如果未能解决你的问题,请参考以下文章

如何用VB.NET生成一个随机字符串

如何用该表唯一的不同整数替换 Django 的主键

Notepad ++替换相同文本的正则表达式匹配加上附加字符

在C++中,如何用不同长度的字符串替换一个命令行参数。

如何用java生成有规律的字符串?

如何用固定长度和许多元素编写这个正则表达式