【发布时间】:2018-06-14 23:14:47
【问题描述】:
谁能帮我找到一个代码来复制字符串'X 0'(X = H,He...)和最近的'****'之间的所有字符串?我使用 bash 进行编程。
H 0
S 3 1.00 0.000000000000
0.1873113696D+02 0.3349460434D 01
0.2825394365D+01 0.2347269535D+00
0.6401216923D+00 0.8137573261D+00
S 1 1.00 0.000000000000
0.1612777588D+00 0.1000000000D+01
****
He 0
S 3 1.00 0.000000000000
0.3842163400D+02 0.4013973935D 01
0.5778030000D+01 0.2612460970D+00
0.1241774000D+01 0.7931846246D+00
S 1 1.00 0.000000000000
0.2979640000D+00 0.1000000000D+01
****
我想对所有“X 0”(X = H,He...)执行此操作,特别是,为所有“X 0”获取这样的孤立文本:
H 0
S 3 1.00 0.000000000000
0.1873113696D+02 0.3349460434D 01
0.2825394365D+01 0.2347269535D+00
0.6401216923D+00 0.8137573261D+00
S 1 1.00 0.000000000000
0.1612777588D+00 0.1000000000D+01
****
和
He 0
S 3 1.00 0.000000000000
0.3842163400D+02 0.4013973935D 01
0.5778030000D+01 0.2612460970D+00
0.1241774000D+01 0.7931846246D+00
S 1 1.00 0.000000000000
0.2979640000D+00 0.1000000000D+01
****
所以我想我必须找到一种方法来使用包含“X 0”的字符串。
我试图使用grep -A2000 'H 0' filename.txt | grep -B2000 -m8 '****' filename.txt >> filenameH.txt,但它对于 X 的其他示例没有那么有用,只是第一个。
【问题讨论】:
-
欢迎来到 SO,请在您的帖子中发布更有意义的输入和输出示例。