您好我制作了一个脚本,它从我的数据库中获取数据并将其存储到.csv文件中
.csv文件的内容:
1-Mar-12,183991,1017 --- --- more columns are there
2-Mar-12,,,,,,,,,,,,
3-Mar-12,,,,,,,,,,,,
4-Mar-12,,,,,,,,,,,,
5-Mar-12,,,,,,,,,,,,
6-Mar-12,,,,,,,,,,,,
当我尝试替换字符串取决于它将添加所有相应日期的日期。
例如
我想在2-Mar-12
上替换一个字符串命令是
sed "s/$finddate/$finalstring/" dailyrep.csv > DailyReport_$datenow.csv
sed "s/2-Mar-12/$mydata/" origfile > fileto store
输出
2-Mar-12,177950,8159,95.62%,6785711
3-Mar-12,,,,,,,,,
4-Mar-12,,,,,,,,,
5-Mar-12,,,,,,,,,
6-Mar-12,,,,,,,,,
11-Mar-12,,,,,,,,,,,,,,,,,,,,
12-Mar-12,177950,8159,95.62%,
21-Mar-12,,,,,,,,,,,,,,,,,,,
22-Mar-12,177950,8159,95.62%
我想只替换那个特定的日期而不是所有的日期。
答案 0 :(得分:3)
您可以使用此sed
命令:
$ sed "/^$finddate/s/$mydata/$finalstring/" dailyrep.csv
它只会在包含$mydata
的行上将$finalstring
替换为$finddate
。
答案 1 :(得分:1)
^
表示“行首”。因此,您需要将"s/2-Mar-12/$mydata/"
更改为"s/^2-Mar-12/$mydata/"
。当然,它不仅适用于sed。