我的平台:Ubuntu linux工作站
在目录中,我有一系列文件,文件名为xxx_1.in到xxx_50.in
对于每个文件,我想将abc替换为def。如果我单独做,我应该输入:g / abc / s // def / g
如何编写脚本以一次处理所有文件?
答案 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