首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在linux中的perticular列之后添加带有值的标头

如何在linux中的perticular列之后添加带有值的标头
EN

Stack Overflow用户
提问于 2022-08-23 19:27:53
回答 2查看 39关注 0票数 0

在这里,我想在列名年龄之后添加一个标题名为Gender的列,该列具有值。

代码语言:javascript
复制
cat Person.csv

First_Name|Last_Name||Age|Address
Ram|Singh|18|Punjab
Sanjeev|Kumar|32|Mumbai

我用的是:

代码语言:javascript
复制
cat Person.csv | sed '1s/$/|Gender/; 2,$s/$/|Male/' 

产出:

代码语言:javascript
复制
First_Name|Last_Name||Age|Address|Gender
Ram|Singh|18|Punjab|Male
Sanjeev|Kumar|32|Mumbai|Male

我想要这样的产出:

代码语言:javascript
复制
First_Name|Last_Name|Age|Gender|Address
Ram|Singh|18|Male|Punjab
Sanjeev|Kumar|32|Male|Mumbai
EN

回答 2

Stack Overflow用户

发布于 2022-08-23 20:19:13

我拿出了第二个管道(为了一致性起见).sed应该如下所示:

代码语言:javascript
复制
$ sed -E '1s/^([^|]+\|[^|]+\|[^|]+\|)/\1Gender|/;2,$s/^([^|]+\|[^|]+\|[^|]+\|)/\1male|/' Person.csv
First_Name|Last_Name|Age|Gender|Address
Ram|Singh|18|male|Punjab
Sanjeev|Kumar|32|male|Mumbai

我们匹配并记住前三个字段,并将它们替换为自己,然后分别是Gendermale

票数 0
EN

Stack Overflow用户

发布于 2022-08-23 20:34:24

使用awk

代码语言:javascript
复制
$ awk -F"|" 'BEGIN{ OFS="|"}{ last=$NF; $NF=""; print (NR==1) ? $0"Gender|"last : $0"Male|"last }' Person.csv
First_Name|Last_Name||Age|Gender|Address
Ram|Singh|18|Male|Punjab
Sanjeev|Kumar|32|Male|Mumbai

使用“\”作为输入字段分隔符,并将输出字段分隔符设置为“\”。将最后一列值存储在名为last的变量中,然后删除最后一列$NF=""。然后根据是否为第一行或其后的行打印适当的输出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73464180

复制
相关文章

相似问题

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