首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将每一行的第三个逗号替换为换行符

将每一行的第三个逗号替换为换行符
EN

Unix & Linux用户
提问于 2018-10-11 16:52:26
回答 2查看 3.2K关注 0票数 3

我有这些长ID,由四个部分组成:

代码语言:javascript
复制
AKJHGFGUIKL,OIUYT,KJHBTYUI,98765434567
RTYUIKHGFGH,TYUJI,TGHYJKJKLJKL,6789876
ETRYTUUI,YTYUIL,UIOKJHGFGH,34567898766

我想把数字放进新行,去掉第三个逗号。

代码语言:javascript
复制
AKJHGFGUIKL,OIUYT,KJHBTYUI
98765434567

RTYUIKHGFGH,TYUJI,TGHYJKJKLJKL
6789876

ETRYTUUI,YTYUIL,UIOKJHGFGH
34567898766

我该怎么做?

EN

回答 2

Unix & Linux用户

发布于 2018-10-11 16:54:52

使用GNU sed

代码语言:javascript
复制
sed "s/,/\n/3; G" file

ETRYTUUI,YTYUIL,UIOKJHGFGH
34567898766

解释:

sed代表流编辑器..sed有以下语法:

代码语言:javascript
复制
substitute/match(or pattern)/replacement/position file

在上面的命令中,s用一个新行\n代替第三个,

G是将新行添加到模式空间的内容中,然后将保持空间的内容附加到模式空间。

票数 12
EN

Unix & Linux用户

发布于 2018-10-12 11:02:21

另一种不那么简洁的sed代码:

代码语言:javascript
复制
sed 's/,\([^,]*\)/\n\1\n/3' file

如果为了其他目的需要保持缓冲区,可以使用...which (假设有额外的需求)。如果您需要可移植代码(上面是gnu sed语法),请在RHS中使用文字换行符:

代码语言:javascript
复制
sed 's/,\([^,]*\)/\
\1\
/3' file
票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/474882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档