0

我有两个包含以下记录的文件:

File1

1,2,3,a|x|z,4,5

File2

1,2,3,a|x|z,4,5
1,2,3,a|x|z,4,5
1,2,3,a|x|z,4,5
1,2,3,a|x|z,4,5

这里有6个字段分隔,

如何分别用 a、x 和 z替换a|x|z第 2、3 和 4 行中的第四个字段(即)。File2File1

我真正的问题是,第四个字段不会总是a|x|z,但它总是|分开的

我考虑的输出如下。

File2

1,2,3,a|x|z,4,5
1,2,3,a,4,5
1,2,3,x,4,5
1,2,3,z,4,5
4

1 回答 1

1
$ awk 'FNR==NR{split($4,f1,"|");next}FNR>1{$4=f1[FNR-1]}1' FS=, OFS=, file1 file2
1,2,3,a|x|z,4,5
1,2,3,a,4,5
1,2,3,x,4,5
1,2,3,z,4,5

注意:这假设file1 ie 3中的子字段数等于要在file2 3 中再次替换的行数(第 2、3、4 行)。如果不是这种情况,您应该描述如果说子字段的数量仍然是 3 但文件中的行数是 10 会发生什么?

于 2013-04-06T21:58:10.823 回答