我的文件如下:
ModelTest.php
我希望它看起来像这样:
ID,DATE,NAME
1,10-17-18,John
2,10-12-18,Mary
3,10-19-18,David
如何在bash中做到这一点?
谢谢!
答案 0 :(得分:-1)
以','-F','
为界。
跳过第一行(NR>1)
。
将日期字符串替换为/,gsub(/-/,"/",$2)
,以便日期能够识别格式
作为月/日/年。
转换日期格式,另存为变量d ("date +%Y-%m-%d -d"$2 | getline d)
。
然后打印每个用逗号分隔的字段。
awk -F',' '(NR>1){gsub(/-/,"/",$2); ("date +%Y-%m-%d -d"$2 | getline d); print $1","d","$3}' file
要跳过带有空白日期的行,请在开头添加if($2=="") next;
,如下所示:
awk -F',' '(NR>1){if($2=="") next; gsub(/-/,"/",$2); ("date +%Y-%m-%d -d"$2 | getline d); print $1","d","$3}' file