Chinaunix
标题:
如何处理这个问题
[打印本页]
作者:
wjw870907
时间:
2020-03-12 10:26
标题:
如何处理这个问题
cat file
name,811,aaa|bbb|ccc|ddd|eee|fff
support,812,
t_member,820,ccc|eee|fff
icac,821,
datax,822,aaa|ccc
exchange,823,bbb
jv,900,
变成
name,811,aaa
name,811,bbb
name,811,cc
name,811,ddd
name,811,eee
support,812,
t_member,820,ccc
t_member,820,eee
t_member,820,fff
icac,821,
datax,822,aaa
datax,822,ccc
exchange,823,bbb
jv,900,
作者:
Looiml
时间:
2020-03-12 16:44
sed -r ':a;s/^(.*,)([^|]+)\|(.*)$/\1\2\n\1\3/m;ta' a.txt
复制代码
name,811,aaa
name,811,bbb
name,811,ccc
name,811,ddd
name,811,eee
name,811,fff
support,812,
t_member,820,ccc
t_member,820,eee
t_member,820,fff
icac,821,
datax,822,aaa
datax,822,ccc
exchange,823,bbb
jv,900,
作者:
wjw870907
时间:
2020-03-12 18:47
回复
2#
Looiml
谢谢
作者:
wh7211
时间:
2020-03-18 22:39
本帖最后由 wh7211 于 2020-03-18 22:48 编辑
回复
1#
wjw870907
cat 1
name,811,aaa|bbb|ccc|ddd|eee|fff
support,812,
t_member,820,ccc|eee|fff
icac,821,
datax,822,aaa|ccc
exchange,823,bbb
jv,900,
awk -F"," '$NF~/\|/{match($0,"^(.*,)[^,]+$",a);c=split($NF,b,"|");$0="";for(i=1;i<=c;i++){$0=$0?$0"\n"a[1]b[i]:a[1]b[i]}}1' 1
name,811,aaa
name,811,bbb
name,811,ccc
name,811,ddd
name,811,eee
name,811,fff
support,812,
t_member,820,ccc
t_member,820,eee
t_member,820,fff
icac,821,
datax,822,aaa
datax,822,ccc
exchange,823,bbb
jv,900,
复制代码
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2