【发布时间】:2019-11-17 23:44:24
【问题描述】:
我构建了一个脚本 (bash) 来替换 .txt 文件中特定位置的图形。
这是文件,data.txt:
Date; Buy; Sell; Coupon; Fee
21/6/2019;0.0000000000;0.0000000000;0.0000000000
我想替换第 12 个字符。
如果第 12 位等于“0”,则在代码部分下方找到更改位置的部分,将数字更改为“59”
sed 's/^\(.\{11\}\)0/\159/' data.txt
到目前为止一切顺利,问题是当我只想对最后一行 (#34) 进行更改时,将文件 (data.txt) 映像为:
Date; Buy; Sell; Coupon; Fee
26/4/2006;0.0000000000;-200000000.0;0.0000000000
4/5/2006;0.0000000000;-100000000.0;0.0000000000
4/5/2006;0.0000000000;-300000000.0;0.0000000000
1/12/2006;0.0000000000;0.0000000000;-30000000.00
5/12/2006;0.0000000000;-250000000.0;0.0000000000
8/12/2006;0.0000000000;-250000000.0;0.0000000000
19/12/2006;0.0000000000;-650000000.0;0.000000000
18/1/2007;0.0000000000;-250000000.0;0.0000000000
1/2/2007;0.0000000000;-250000000.0;0.0000000000
2/2/2007;0.0000000000;-720000000.0;0.0000000000
28/3/2007;0.0000000000;-200000000.0;0.0000000000
28/3/2007;0.0000000000;-400000000.0;0.0000000000
3/5/2007;0.0000000000;-250000000.0;0.0000000000
3/5/2007;0.0000000000;-750000000.0;0.0000000000
3/5/2007;0.0000000000;-250000000.0;0.0000000000
5/6/2007;0.0000000000;-500000000.0;0.0000000000
3/7/2007;0.0000000000;-300000000.0;0.0000000000
3/12/2007;0.0000000000;0.0000000000;-281000000.0
1/12/2008;0.0000000000;0.0000000000;-281000000.0
1/12/2009;0.0000000000;0.0000000000;-281000000.0
1/12/2010;0.0000000000;0.0000000000;-281000000.0
5/4/2011;525000000.00;0.0000000000;0.0000000000
1/12/2011;0.0000000000;0.0000000000;-254750000.0
2/11/2012;1348000000.0;0.0000000000;0.0000000000
2/11/2012;840000000.00;0.0000000000;0.0000000000
3/12/2012;0.0000000000;0.0000000000;-145350000.0
2/12/2013;0.0000000000;0.0000000000;-145350000.0
1/12/2014;0.0000000000;0.0000000000;-145350000.0
1/12/2015;0.0000000000;0.0000000000;-145350000.0
1/12/2016;0.0000000000;0.0000000000;-145350000.0
1/12/2017;0.0000000000;0.0000000000;-145350000.0
3/12/2018;0.0000000000;0.0000000000;-145350000.0
21/6/2019;0.0000000000;0.0000000000;0.0000000000
我使用了以下内容:
#!/bin/bash
i=1
while read line;do
if((i==34));then
sed 's/^\(.\{11\}\)0/\159/' data.txt
fi
((i++))
似乎条件有问题,脚本运行永不停止,没有输出就像一个没有结束的循环。
【问题讨论】:
-
请按照论坛规则将您的示例/代码包装在 CODE TAGS 中,然后编辑您的帖子并让我们知道。
-
替换第十二个字符会产生不一致的结果,因为您的第一个字段(日期)是可变长度的。请编辑您的问题以包含您想要的确切输出。
-
大家好,我现在编辑了我的帖子。感谢您的帮助。
-
@LorenzoCastagno 请编辑您的问题以包含所需的确切输出。