【问题标题】:Search and Replace Keyword with File Name across Multiple Files在多个文件中使用文件名搜索和替换关键字
【发布时间】:2018-05-24 18:16:58
【问题描述】:

我正在尝试在许多文件中进行大规模搜索和替换,我用当前文件的名称替换文件中的关键字,比如myKeyword

所以在 file1.php 中,短语 myKeyword 将变为 file1; 在file2.php 中,它将变为file2; 以此类推,直到完成所有文件。

我想知道这是否可以使用脚本或文本编辑器功能。

【问题讨论】:

    标签: search replace filenames


    【解决方案1】:

    使用 GNU sed:

    $ for filename in $(find . -type f -name "*"); do sed -i "s/myKeyword/$(basename ${filename} | cut -f 1 -d '.')/g" "${filename}"; done
    
    • basename:从文件名中删除完整路径 - path/to/file1.txt -> file1.txt
    • cut -f 1 -d '.':去除文件扩展名 - file1.txt -> file1

    在 OSX(BSD sed 而不是 GNU)上,您需要改写 sed -i '' "s/myKeyword/...-i 之后的空字符串 '')。请参阅此答案以了解差异:https://unix.stackexchange.com/a/272041/374001

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-29
      • 2022-01-21
      • 1970-01-01
      • 2017-11-09
      • 1970-01-01
      • 1970-01-01
      • 2017-07-07
      • 1970-01-01
      相关资源
      最近更新 更多