计算化学公社

 找回密码 Forget password
 注册 Register
Views: 3778|回复 Reply: 2
打印 Print 上一主题 Last thread 下一主题 Next thread

[shell脚本] 请教一个在bash shell下脚本变量读取赋值的问题

[复制链接 Copy URL]

58

帖子

0

威望

3451

eV
积分
3509

Level 5 (御坂)

跳转到指定楼层 Go to specific reply
楼主
大家好,我想请教一个关于bash shell脚本的问题。
通过非标准的IOp计算IRC,得到了每一步中的Mulliken电荷,希望将.log中的Mulliken电荷相关信息输出储存起来。
现在有如下思路:
  1. #!/bin/sh
  2. #获取每个.log中Mulliken charges的开头和结尾对应的行号,并储存至相应.txt文件
  3. for i in $(ls *.log)
  4. do
  5. j=$(basename $i .log)
  6. grep -n '^ Mulliken charges'>>$j.txt
  7. done
复制代码

txt中的内容如下
  1. <div>1366: Mulliken charges:
  2. 1415: Mulliken chargeswith hydrogens summed into heavy atoms:</div><div>`````````</div><div>`````````
  3. 3813: Mulliken charges:
  4. 3862: Mulliken chargeswith hydrogens summed into heavy atoms:</div>
复制代码


希望通过for语句或者类似的循环语句实现:每次读取两行开头的数字并赋值给两个变量$l,$m,并通过
sed -n '$l,$mp' $i>$j_Result.txt
储存改内容至相应文件 ,现在不知道赋值要怎么实现,大家有什么办法吗?
不用shell script改用python实现也可以,大家有什么思路吗?谢谢大家。

403

帖子

4

威望

2874

eV
积分
3357

Level 5 (御坂)

2#
发表于 Post on 2018-1-19 14:45:43 | 只看该作者 Only view this author
用awk。

举个例子:
l=$(awk 'NR==1 {print $1} xxxx.log)
mp=$(awk 'NR==2 {print $1} xxxx.log)

评分 Rate

参与人数
Participants 2
eV +6 收起 理由
Reason
终_焉 + 5 好的,我去看看这个命令,谢谢
sobereva + 1

查看全部评分 View all ratings

58

帖子

0

威望

3451

eV
积分
3509

Level 5 (御坂)

3#
 楼主 Author| 发表于 Post on 2018-1-19 23:38:04 | 只看该作者 Only view this author
下面的代码可以实现将当前目录下的所有log文件中的Mulliken charges信息提取并储存到对应的文件名_Mulliken.txt中
  1. #!/bin/sh
  2. rm *.txt
  3. for i in $(ls *.log)
  4. do
  5. j=$(basename $i .log)
  6. grep -n  "^ Mulliken" $i>>$j.txt
  7. done

  8. for i in $(ls *.txt)
  9. do
  10. j=$(basename $i .txt)
  11. k=$(grep -c 'Mulliken' $i)
  12. l=1
  13. while (($l<=$k))
  14. do
  15. m=$(awk -F : 'NR=='$l' {print $1 }' $i)
  16. let 'l++'
  17. n=$(awk -F : 'NR=='$l' {print $1 }' $i)
  18. let 'l++'
  19. sed -n ''$m','$n'p' $j.log>>$j\_Mulliken.txt
  20. echo >>$j\_Mulliken.txt
  21. done
  22. rm $i
  23. done
复制代码

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 19:14 , Processed in 0.483899 second(s), 22 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list