如何在Ubuntu Linux中搜索-替换文件中的内容



我的平台:Ubuntu linux工作站

在一个目录中,我有一系列文件,文件名为xxx_1。In to xxx_50.in

对于每个文件,我想将abc替换为def。如果我单独执行,我应该输入:g/abc/s//def/g

如何写一个脚本来处理所有的文件在一次?

sed -i 's/abc/def/g' xxx_*.in

应该足够

我喜欢Python,即使是shell脚本。我真的不知道如何使用sed,所以我坚持使用Python的搜索并替换:

#!/usr/bin/env python
import os, glob
for filename in glob('xxx_*.in'):
  os.rename(filename , filename .replace('abc', 'def'))

作为一个内联脚本,当你把它复制/粘贴到Terminal(我现在的机器上没有Python,所以不能保证),

python -c "import os, glob; eval('for f in glob('xxx_*.in'):n  os.rename(filename , filename .replace('abc', 'def'))'"

似乎你指的是文件的内容这个,我可以不使用Python(希望它能工作):

for f in xxx_*.in; do sed s/abc/def/g "$f"; done

相关内容

  • 没有找到相关文章

最新更新