ファイルとして私はdateOfBirthのためCSV
で3rd
フィールドを持っている:私は02/04/1996
にそのフォーマットを変更したい02041996
バッシュScript-プロセスCSVは
。特定の桁数の後に/
を追加する方法はありますか?
ファイルとして私はdateOfBirthのためCSV
で3rd
フィールドを持っている:私は02/04/1996
にそのフォーマットを変更したい02041996
バッシュScript-プロセスCSVは
。特定の桁数の後に/
を追加する方法はありますか?
split
の機能を使用してawk
のファンクションを分割し、各フィールドを何も指定しないでください。""
。後でprintステートメントでは、各フィールドはa[N]
を使って呼び出されます。
awk -F, -v OFS=, '{split($3,a,"");$3=a[1]a[2]"/"a[3]a[4]"/"a[5]a[6]a[7]a[8]}1' csvFile
ありがとうPS!それは私を救う.. – Aayushi
使用awkのさんsubstr
機能:
awk -F, '{ $3=substr($3,1,2)"/"substr($3,3,2)"/"substr($3,5) }1' OFS=',' file
別awk
解決策:
awk -F, '{$3 = gensub(/([^ ]{2})([^ ]{2})(.*)/, "\\1/\\2/\\3", "g", $3)}1' OFS=','
サンプル:
AMD$ echo " col1 , col2, 02041996, col4 " | awk -F, '{$3 = gensub(/([^ ]{2})([^ ]{2})(.*)/, "\\1/\\2/\\3", "g", $3)}1' OFS=','
col1 , col2, 02/04/1996, col4
は、例示的な線を示す。さらに、19996年には – RomanPerekhrest
が表示されました。申し訳ありませんが、それはタイプミスです。1996年です。 – Aayushi