24小时热门版块排行榜    

查看: 1006  |  回复: 3

astringent

铜虫 (著名写手)

[求助] BASH脚本的一个小问题

初学shell。最近有个小问题,我想对一个文件进行如下操作:
1. 删掉第一行和第二行
2. 在1-9行的行尾都加一个 H
3. 在10-15行的行尾都加一个 L
4. 将10-15行中H都换成H-HW-0.123
5. 将10-15行中O都换成O-OW--0.123
我自己写的一个脚本为:
#!/bin/bash
sed '1,2d' $1 >1
sed '1,9s/$/ H/' 1 > 2
sed '10,15s/$/ L/' 2 > 3
sed '10,15s/H/H-HW-0.123/' 3>4
sed '10,15s/O/O-OW--0.123/' 4>5
我单独使用各个命令时可以正常运行,但是当我用上面的脚本时,电脑就不动了,请问我的脚本有问题吗?
我的输入文件是:
15
Energy: -1322.5672
Cl   1.5207060   -0.4284360   1.0008590
C   0.0510570   0.5531550   1.2577600
H   -0.5373090   0.0939060   2.0421910
H   -0.5107420   0.5811480   0.3325480
H   0.3504640   1.5526380   1.5472570
N   -2.6664760   2.3689020   1.7321880
H   -3.5154660   1.8415500   1.5685470
H   -2.7292980   2.7279260   2.6770760
H   -2.7046080   3.1723380   1.1168080
O   -5.3078010   1.3784950   5.0233780
H   -4.3909370   1.1807420   5.2143900
H   -5.6483370   1.7481310   5.8380160
O   -3.2026420   3.2450530   -4.0094670
H   -3.9913100   3.5629880   -4.4489580
H   -3.5014180   2.9866140   -3.1375880
我想要的是:
Cl   1.5207060   -0.4284360   1.0008590 H
C   0.0510570   0.5531550   1.2577600 H
H   -0.5373090   0.0939060   2.0421910 H
H   -0.5107420   0.5811480   0.3325480 H
H   0.3504640   1.5526380   1.5472570 H
N   -2.6664760   2.3689020   1.7321880 H
H   -3.5154660   1.8415500   1.5685470 H
H   -2.7292980   2.7279260   2.6770760 H
H   -2.7046080   3.1723380   1.1168080 H
O-OW--0.123   -5.3078010   1.3784950   5.0233780 L
H-HW-0.123   -4.3909370   1.1807420   5.2143900 L
H-HW-0.123   -5.6483370   1.7481310   5.8380160 L
O-OW--0.123   -3.2026420   3.2450530   -4.0094670 L
H-HW-0.123   -3.9913100   3.5629880   -4.4489580 L
H-HW-0.123   -3.5014180   2.9866140   -3.1375880 L
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cmdblock

银虫 (正式写手)

可能你的电脑太旧了
2楼2012-05-05 06:05:34
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zzy870720z

荣誉版主 (文坛精英)

优秀版主优秀版主优秀版主优秀版主

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
xzhdty: 金币+2, 谢谢参与 2012-05-05 22:09:34
astringent: 金币+5, ★★★很有帮助 2012-05-06 00:33:04
你的脚本没有问题,有个地方没有空格而已
sed '10,15s/H/H-HW-0.123/' 3>4
sed '10,15s/O/O-OW--0.123/' 4>5
应该改为
sed '10,15s/H/H-HW-0.123/' 3 > 4
sed '10,15s/O/O-OW--0.123/' 4 > 5
你试试
博学、审问、慎思、明辨、笃学
3楼2012-05-05 13:43:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

astringent

铜虫 (著名写手)

引用回帖:
2楼: Originally posted by cmdblock at 2012-05-05 06:05:34:
可能你的电脑太旧了

电脑是新买的苹果,真是太郁闷了
4楼2012-05-06 00:33:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 astringent 的主题更新
信息提示
请填处理意见