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がコマンド全体を見る前にシェルによって展開されます。あなたの入力ファイルはどのように見えますか? –
あなたの質問は簡潔で、テスト可能なサンプル入力と期待される出力を表示するため、私たちはあなたを助けることができます。今まであなたは私たちにスクリプトを見せてくれました**あなたがしたいことは何でもしていますが、私たちはそれがあなたのものであることを示していません**あなたを助けるのに最高の方法を推測する。それがはっきりしない場合は[ask]を参照してください。 –
あなたの入力ファイル '/ home/root/customers_and_contacts.txt'の内容と期待される結果を投稿してください。 – RomanPerekhrest