gpt4 book ai didi

linux 命令删除列,添加 id 列并添加另一个额外的列 unix/linux awk

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:40:29 26 4
gpt4 key购买 nike

我有一个制表符分隔的文件,我想重新格式化它并删除原来的文件,全部放在一行中。

这是一个制表符分隔的文件,例如我想:

删除给定的列(即第 3 列),在中间添加另一个 id 列(即顺便说一句,第 1 列和第 2 列),其中每一行都是一个 id(例如,row1 是 id1,row2 是 id2,等等),然后在末尾添加另一列文本(即每行都是 hello 的文本)。

一行全部修改,最后删除原文件,新文件与原文件相同。

示例:

fnamein.txt

rogelio\tdelgado\t3453434\tlas encinas\n
mario\tmoreno\t4563432\tcasinos\n
etc...


fname.out

rogelio\tid1\tdelgado\t3453434\tlas encinas\taddress\n
mario\tid2\tmoreno\t4563432\tcasinos\taddress\n
etc...

(如您所见,我在第 1 列和第 2 列之间添加了 ID 列,最后添加了地址列(始终是同一个词))。

只是想知道在 linux 中是否有一种简单的方法可以做到这一点,我是 linux 命令的新手。

谢谢!

最佳答案

另一种方法是使用awk

awk -F'\t'  '{print $1, $2, $3}'   filename

其中 -F 是字段分隔符。 awk 会将文件分成各个字段,您需要做的就是打印字段。 $1 是第一个字段等。要跳过一个字段,请忽略它。

awk '{print $1, $3}'  filename

只会打印第一个和第三个字段。

关于linux 命令删除列,添加 id 列并添加另一个额外的列 unix/linux awk,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12869010/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com