File1中
ANK37748|DEL37728|SRILANKA|195210290000|201209111625 CHA38228|DEL37728|SRILANKA|198410290000|201308071912 ANK37748|DEL37728|SRILANKA|199910290000|201407061815 CHA38228|DEL37728|SRILANKA|199810290000|201507062212
文件2
1952-Oct-29 12:00 1984-Oct-29 12:00 1999-Oct-29 12:00 1998-Oct-29 12:00
期望的输出
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
什么行不通:
paste file1 file2
哪个输出(仅限第一行):
ANK37748|DEL37728|SRILANKA|195210290000|201209111625 1952-Oct-29 12:00
我需要将 file1 的第四列替换为 file2 的第一列(也是唯一一列)。
请帮帮我。
本
答案 0 :(得分:0)
使用粘贴和剪切,将字段分隔符设置为“|”:
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
注意kludge - cut 的粗鲁'-f'开关可以按顺序输出字段并跳过字段,但就像纸质电传打字一样,它无法备份!而不是像 cut -f'-3,6,5'那样明智的事情,粘贴需要传递'file1'两次,因此'11'场。
(上述工作可以在纯 Bourne shell , bash , awk , sed 中完成,等等或这些的混合组合。)