我的平台:Ubuntu Linux操作系统的工作站如何在Ubuntu Linux中搜索文件内的内容?
在一个目录,我havea一系列文件,具有文件名xxx_1.in到xxx_50.in
对于每一个文件,我想更换农行业。如果我单独做,我应该输入:g/abc/s // def/g
如何编写一个脚本来一次处理所有文件?
我的平台:Ubuntu Linux操作系统的工作站如何在Ubuntu Linux中搜索文件内的内容?
在一个目录,我havea一系列文件,具有文件名xxx_1.in到xxx_50.in
对于每一个文件,我想更换农行业。如果我单独做,我应该输入: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'))
所以作为运行时您复制/粘贴到终端(我没有一个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
我清理了一些语法和明确的称号。 – cdeszaq 2011-04-21 15:09:07
你是否用文件内容或名称中的'def'替换'abc'?我会做两个。 – Blender 2011-04-21 15:10:03