file=/home/root/customers_and_contacts.txt
month[1]="January"
month[2]="Febuary"
month[3]="March"
month[4]="April"
month[5]="May"
month[6]="June"
month[7]="July"
month[8]="August"
month[9]="September"
month[10]="October"
month[11]="November"
month[12]="December"
cat $file | sed "s/\b[0-9]\([0-9]\)-\?\([0-9]\{2\}\)-\?\([0-9]\{4\}\)\b/$(month[\1])"
为了简单起见,我创建了上述文档。基本上,customers_and_contacts.txt包含一个我想将月份转换为月份实际名称的日期。发送捕获的组作为数组索引到sed
Month[0]
似乎工作
\1
似乎工作
当你把它们放在一起,它不
编辑----
假设输入文件包含n个行数如下所示:
08-06-1998
02-03-2014
输出文件应该像下面
August 06-1998
February 03-2014
你不能这样做。命令替换'$(month [\ 1])'在sed得到查看整个命令之前由shell扩展。你的输入文件是什么样的? –
[编辑]你的问题向我们展示简洁,可测试的样本输入和预期的输出,所以我们可以帮助你。到目前为止,你只向我们展示了一个脚本,它不会**做你想做的事情,但没有向我们展示你是什么**做**想做的事我们只是做猜测如何最好地帮助你。看[问]如果不清楚。 –
发布您的输入文件'/ home/root/customers_and_contacts.txt'的内容和预期结果 – RomanPerekhrest