我有这些长ID,由四个部分组成:
AKJHGFGUIKL,OIUYT,KJHBTYUI,98765434567
RTYUIKHGFGH,TYUJI,TGHYJKJKLJKL,6789876
ETRYTUUI,YTYUIL,UIOKJHGFGH,34567898766我想把数字放进新行,去掉第三个逗号。
AKJHGFGUIKL,OIUYT,KJHBTYUI
98765434567
RTYUIKHGFGH,TYUJI,TGHYJKJKLJKL
6789876
ETRYTUUI,YTYUIL,UIOKJHGFGH
34567898766我该怎么做?
发布于 2018-10-11 16:54:52
使用GNU sed:
sed "s/,/\n/3; G" file
ETRYTUUI,YTYUIL,UIOKJHGFGH
34567898766解释:
sed代表流编辑器..sed有以下语法:
substitute/match(or pattern)/replacement/position file在上面的命令中,s用一个新行\n代替第三个,。
G是将新行添加到模式空间的内容中,然后将保持空间的内容附加到模式空间。
发布于 2018-10-12 11:02:21
另一种不那么简洁的sed代码:
sed 's/,\([^,]*\)/\n\1\n/3' file如果为了其他目的需要保持缓冲区,可以使用...which (假设有额外的需求)。如果您需要可移植代码(上面是gnu sed语法),请在RHS中使用文字换行符:
sed 's/,\([^,]*\)/\
\1\
/3' filehttps://unix.stackexchange.com/questions/474882
复制相似问题