我的平台: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