gpt4 book ai didi

linux - 合并两个文件,将 file1 中的一个字段替换为 file2 中的另一个字段

转载 作者:太空宇宙 更新时间:2023-11-04 05:51:18 25 4
gpt4 key购买 nike

文件1

ANK37748|DEL37728|SRILANKA|195210290000|201209111625CHA38228|DEL37728|SRILANKA|198410290000|201308071912ANK37748|DEL37728|SRILANKA|199910290000|201407061815CHA38228|DEL37728|SRILANKA|199810290000|201507062212

File2

1952-Oct-29 12:00   1984-Oct-29 12:00   1999-Oct-29 12:00          1998-Oct-29 12:00

Desired output

ANK37748|DEL37728|SRILANKA|1952-Oct-29 12:00|201209111625CHA38228|DEL37728|SRILANKA|1984-Oct-29 12:00|201308071912ANK37748|DEL37728|SRILANKA|1999-Oct-29 12:00|201407061815CHA38228|DEL37728|SRILANKA|1998-Oct-29 12:00|201507062212

What didn't work:

paste file1 file2

哪个输出(仅第一行):

ANK37748|DEL37728|SRILANKA|195210290000|201209111625 1952-Oct-29 12:00 

我需要将 file1 的第四列替换为 file2 的第一列(也是唯一的列)。

请帮助我。

最佳答案

使用粘贴剪切,将字段分隔符设置为“|”:

paste -d \| file[12]  file1 | cut -d \| -f '-3,6,11'

输出:

ANK37748|DEL37728|SRILANKA|1952-Oct-29 12:00|201209111625
CHA38228|DEL37728|SRILANKA|1984-Oct-29 12:00|201308071912
ANK37748|DEL37728|SRILANKA|1999-Oct-29 12:00|201407061815
CHA38228|DEL37728|SRILANKA|1998-Oct-29 12:00|201507062212

请注意拼凑 - cut 粗鲁的“-f”开关可以按顺序输出字段并跳过字段,但就像纸质电传打字机一样,它无法备份! paste 需要传递“file1”两次,而不是像 cut -f '-3,6,5' 这样的合理内容,因此是“11”字段。

(上述工作可以在纯 Bourne shellbashawksed 等或这些的混合组合中轻松完成。)

关于linux - 合并两个文件,将 file1 中的一个字段替换为 file2 中的另一个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36444200/

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