加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

在bash脚本中运行vi并执行vi命令以编辑另一个文件

发布时间:2020-12-16 01:17:43 所属栏目:安全 来源:网络整理
导读:所以我制作了一个从许多不同文件中收集数据的脚本: #!/bin/bashmkdir DATAPOOL"$1"grep achi *outrunnergrep treat *outrunnercat runner | grep Primitive *gout | grep '= '|awk '{print $1,$6}' CellVolume"$1".txt cat runner | grep ' c ' *gout | gre
所以我制作了一个从许多不同文件中收集数据的脚本:
#!/bin/bash

mkdir DATAPOOL"$1"

grep achi *out>runner
grep treat *out>>runner

cat runner | grep Primitive *gout | grep '=   '|awk '{print $1,$6}' > CellVolume"$1".txt 
cat runner | grep ' c ' *gout | grep 'Angstrom   '|awk '{print $1,$3}' > Cellc"$1".txt 
cat runner | grep 'Final energy ' *gout |awk '{print $1,$5}' > CellEnergy"$1".txt

等等

cat runner |awk '{print "~/xtlanal",$1," > ",$1}' >runner2
vi runner2
:1,$s/gout:/xtl/
:1,$s/gout:/dat/
:wq

source runner2

grep Summary *dat | grep 'CAT-O  ' |awk '{print $1,$6}' > AVE_NaO_"$1".txt

mv *txt DATAPOOL"$1"

因此,当没有vi部分运行时,我最终得到了所有必需的文本文件,所以我知道它一切正常.此外,当我使用vi命令运行它时,它只是停止在vi命令运行,然后我可以手动输入3个命令,我最终得到了正确的结果.我正在努力的是我不能让vi自己运行命令,所以我可以在不同的目录中多次执行该文件,而不必一次又一次地手动输入命令.

任何帮助将不胜感激.

干杯

对于脚本编辑任务,您可以使用ed而不是vi:
ed runner2 <<'END'
1,$s/gout:/xtl/
1,$s/gout:/dat/
w
q
END

对于全局面向行的搜索和替换,sed是一个不错的选择:

sed -i 's/gout:/xtl/; s/gout:/dat/' runner2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读