一尘不染

在多个文件中查找并替换特定术语

linux

如何在Linux中的多个文件中替换特定术语?

例如,我的目录中有许多文件:

file1.txt file2.txt file3.txt

我需要找到一个单词“ searchword”并将其替换为“ replaceword”。


阅读 203

收藏
2020-06-03

共1个答案

一尘不染

sed -i.bak 's/searchword/replaceword/g' file*.txt
# Or sed -i.bak '/searchword/s/searchword/replaceword/g' file*.txt

使用bash 4.0,您可以递归搜索文件

#!/bin/bash
shopt -s globstar
for file in **/file*.txt
do 
  sed -i.bak 's/searchword/replaceword/g' $file
  # or sed -i.bak '/searchword/s/searchword/replaceword/g' $file
done

或与GNU查找

find /path -type f -iname "file*.txt" -exec sed -i.bak 's/searchword/replace/g' "{}" +;
2020-06-03