LiyuanHu91的个人博客分享 http://blog.sciencenet.cn/u/LiyuanHu91

博文

shell学习笔记(1):批处理修改文本某行字符串

已有 2078 次阅读 2021-5-20 11:43 |个人分类:计算机使用|系统分类:科研笔记

【背景】

需要反复修改Fortran程序的一个输入文件中的某参数,自动进行多次计算,为此需要编写shell脚本实现批处理。输入文件的格式是1列、6行。


【实现举例】

#!/bin/bash

a="1.0"

b="1.5"

for ((i=0; i<=2; i++))

do

 echo "$a" > infile

 echo "$b" > infile


 ./prog

 mv outfile outfile_"$i"


 a=$(echo "$a + 1.0 * (i +1.0)" | bc)


done


【注释】

(1)echo >与echo >>间的区别

> 输出重定向(若当前目录下infile文档不存在,则创建之并添入a的数值;若infile文档存在,则用a之数值替换文档原先内容)

>> 输出追加重定向(当前目录中存在infile,b的数值添加到原先内容后面)

(2)执行读取infile的可执行程序prog,并在每次计算后将输出文件outfile的名字进行修改,可供后面比较。
(3)bc用于实现计算,当前采用的是小数计算模式。


【参考资料】

(1)“echo >”和“echo >>”的区别 - singeryoung - 博客园 (cnblogs.com)

(2)Shell——bc案例_martingpf的博客-CSDN博客



https://wap.sciencenet.cn/blog-3121583-1287419.html

上一篇:MathType学习(1)
下一篇:Fortran学习(1):关于read读取文件的一点新认识
收藏 IP: 221.212.116.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-24 07:01

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部