linux系统中如何将文件的某一列替换为其他文件的指定列
1、测试数据
[root@centos79 test]# cat a.txt e t q t x g a w i k h e [root@centos79 test]# cat b.txt 4 5 6 2 d 2 s g y
2、将b.txt中的第2列用a.txt中的第3列进行替换
[root@centos79 test]# cat a.txt e t q t x g a w i k h e [root@centos79 test]# cat b.txt 4 5 6 2 d 2 s g y [root@centos79 test]# awk '{print $3}' a.txt ##提取用于替换的列 q a h [root@centos79 test]# awk '{print $3}' a.txt | paste - b.txt ##和目标文件横向合并 q 4 5 6 a 2 d 2 h s g y [root@centos79 test]# awk '{print $3}' a.txt | paste - b.txt | awk '{$(2+1) = $1; print $0}' ## 将被替换的列替换为第一列 q 4 q 6 a 2 a 2 h s h y [root@centos79 test]# awk '{print $3}' a.txt | paste - b.txt | awk '{$(2+1) = $1; print $0}' | sed 's/[^ ]* //' ## 删除第一列 4 q 6 2 a 2 s h y