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