首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将计数附加到多个文件中的代码并保存结果。

将计数附加到多个文件中的代码并保存结果。
EN

Stack Overflow用户
提问于 2022-03-05 12:48:02
回答 1查看 104关注 0票数 2

我在这里找人帮忙。我是个十足的新手!

我需要在一个文件中查找与模式A00000_00_A相匹配的代码,并在其上附加一个计数,所以当它第一次出现时,它被替换为A00000_00_A_001、第二次A00000_00_A_002等。输出需要写回同一个文件。每个文件只包含一个代码,但它会多次出现。

经过一番挖掘,我发现-

perl -pi -e 's/Q\d{4,5}'_'\d{2}_./$&.'_'.++$A /ge' /users/documents/*.xml

但问题是计数器没有在每个文件中重置。

也就是说,第一个文件的输出是Q00390_01_A_1到Q00390_01_A_7,而第二个文件是Q00391_01_A_8到Q00391_01_A_10。

我想要的是第一个文件中的Q00390_01_A_1到Q00390_01_A_7,第二个文件中是Q00391_01_A_1到Q00391_01_A_2。

有没有人知道如何编辑上面的代码来做到这一点?我是一个完全的新手,所以理想的编辑,我所拥有的将是辉煌的。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-06 04:00:42

代码语言:javascript
复制
cd /users/documents/
for f in *.xml;do
perl -pi -e 's/facs=.(Q|M)\d{4,5}_\d{2}_\w/$&._.sprintf("%04d",++$A) /ge' $f
done

这将匹配字符串facs=和任何字符,然后是"Q“或"M”,后面是四或五位数字,然后是下划线,然后是两个数字,另一个下划线和一个单词字符。然后将整个匹配与下划线连接起来,$A零的值填充为四位数。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71362323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档