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

时间:2011-04-21 15:00:23

标签: file ubuntu replace

我的平台:Ubuntu linux工作站

在目录中,我有一系列文件,文件名为xxx_1.in到xxx_50.in

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

如何编写脚本以一次处理所有文件?

2 个答案:

答案 0 :(得分:6)

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

应该足够了

答案 1 :(得分:0)

我喜欢Python,甚至是shell脚本。我无法弄清楚如何使用sed,所以我坚持使用Python的搜索和替换:

#!/usr/bin/env python
import os, glob

for filename in glob('xxx_*.in'):
  os.rename(filename , filename .replace('abc', 'def'))

因此,当您将其复制/粘贴到终端时运行的内联脚本(我当前的机器上没有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