【发布时间】:2012-06-26 18:57:55
【问题描述】:
我有两个文件是这样的:
file1(参考文件)
BBB;33
AAA;2
CCC;5
文件2
5;.;.;.
33;.;.;.
我想将文件 1 第一列中的对应字符串替换为 column1 文件 2 中的对应值,以便:
输出
CCC;.;.;.
BBB;.;.;.
希望这很清楚,
感谢您的建议。
【问题讨论】:
我有两个文件是这样的:
file1(参考文件)
BBB;33
AAA;2
CCC;5
文件2
5;.;.;.
33;.;.;.
我想将文件 1 第一列中的对应字符串替换为 column1 文件 2 中的对应值,以便:
输出
CCC;.;.;.
BBB;.;.;.
希望这很清楚,
感谢您的建议。
【问题讨论】:
如果我理解正确并且文件中的顺序正确,
$ cat file1
BBB;33
AAA;2
CCC;5
$ cat file2
33;.;.;.
2;.;.;.
5;.;.;.
$ paste file1 file2 | sed 's/\([0-9]\+\)\t\1;//'
BBB;.;.;.
AAA;.;.;.
CCC;.;.;.
将> file3 添加到最后一个命令以将输出写入file3。那你就可以mv file3 file1了。
【讨论】:
> file1 添加到最后一个命令,因为这会在paste 有机会读取它之前覆盖file1。
; 分隔的。
;,请参阅编辑。