![通过编辑管理逗号分隔字段](https://linux22.com/image/128600/%E9%80%9A%E8%BF%87%E7%BC%96%E8%BE%91%E7%AE%A1%E7%90%86%E9%80%97%E5%8F%B7%E5%88%86%E9%9A%94%E5%AD%97%E6%AE%B5.png)
我有如下文本:
Milk,10,2018,110
我想将其编辑为以下输出:
Milk 10/18 110 NONE NONE NONE NONE
通过以下方式对其进行改造:
- 删除逗号
- 使用分隔符选项卡
- 添加
NONE NONE NONE NONE
为所有信息的稳定词。 - 编辑月份和年份,例如 10,2018 为 10/18
答案1
Awk
解决方案:
awk -F',' '{ printf "%s\t%s\t%s\tNONE\tNONE\tNONE\tNONE\n", $1, $2"/"substr($3, 3), $4 }' file
输出:
Milk 10/18 110 NONE NONE NONE NONE
或者另一种方式:
awk -F',' '{ $5=$6=$7=$8="NONE"; print $1,$2"/"substr($3, 3),$4,$5,$6,$7,$8 }' OFS='\t' file
答案2
‰ sed -e 's#\([^,]*\),\([^,]*\),..\([^,]*\),\(.*\)#\1 \2/\3 \4 NONE NONE NONE NONE#' <<< 'Milk,10,2018,110' Milk 10/18 110 NONE NONE NONE NONE