用于修改文本输入文件并在循环中运行的脚本

时间:2015-07-29 00:49:53

标签: python bash perl

我的输入文件格式如下:

  

2 15 1 5 1

     

ORTG.data 46.7 28.1 33 120

     

HDC3.data 169.7 89.4 47 120

     

../../ GFS / costa_47d 15 0 120

     

../../ GFS / costa_171d 15 0 120

     

mtinvout

数字15对应深度。我将帮助您在bash或python中创建一个允许按深度进行循环搜索的脚本。我的意思是,用16,17,18等代替15。

我有一个简单的perl行:

  

perl -pi -e's / 14/15 / g'mt_inv.in

但它不会作为循环运行。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

#!/bin/bash
oldString=15
newString=16
file="/path/to/file"

while [ newString -lt 50 ]; do
  sed "s/${oldString}/${newString}/g" "$file";
  echo "$file"
  let newString=newString+1
done

或者,如果您希望它实际创建具有替换号码的新文件

#!/bin/bash
oldString=15
newString=16
file="/path/to/file"

while [ newString -lt 50 ]; do
  sed "s/${oldString}/${newString}/g" "$file" > "$file.$newString";
  let newString=newString+1
done