首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用NotePad++将文本替换为文件名?

使用NotePad++将文本替换为文件名?
EN

Stack Overflow用户
提问于 2014-07-30 19:08:10
回答 1查看 2.3K关注 0票数 0

我有数百个文件需要批量替换文本。

我知道在NotePad++中,我可以使用“Files”,同时批量替换所有文件中的文本。我需要将每个文件中的YYYYYYYYY替换为该特定文件的名称。

是否有任何方法可以使用它们的扩展或正则表达式搜索模式来做到这一点?

另外,我有一个短键CTRL + D设置来自动复制文件名,以防.

如果能对此提供任何帮助,我们将不胜感激。如果这样更容易的话,我也愿意通过shell来做这件事。

EN

回答 1

Stack Overflow用户

发布于 2014-07-30 19:10:06

使用perl一行程序

代码语言:javascript
复制
perl -i -pe 's/Y{9}/$ARGV/g' file1 file2 file3

或在窗户上引用:

代码语言:javascript
复制
perl -i.bak -pe "s/Y{9}/$ARGV/g" file1 file2 file3

解释:

交换机

  • -i:编辑已到位的<>文件(如果提供扩展名,则进行备份)
  • -p:为输入文件中的每一行创建一个while(<>){...; print}循环。
  • -e:告诉perl在命令行上执行代码。

  • s/Y{9}/.../g:搜索和替换连续9个Y
  • $ARGV:在从<>读取时包含当前文件的名称。

如果您想在不显式列出文件的情况下将其应用于许多文件,则可以使用:

代码语言:javascript
复制
perl -i -pe 's/Y{9}/$ARGV/g' *.py

您可以在windows上使用glob间接地实现这一点。

代码语言:javascript
复制
perl -i.bak -pe "BEGIN {@ARGV = glob('*.py')} s/Y{9}/$ARGV/g"
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25044966

复制
相关文章

相似问题

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