Bash用字符串代码替换值

Bash用字符串代码替换值,bash,replace,Bash,Replace,我有两个文件是这样的: 文件1引用文件 BBB;33 AAA;2. CCC;五, 文件2 5. 33;.;.;. 我想将文件1第一列中的对应字符串替换为文件2第1列中的对应值,以便: 输出 CCC;。;。;。 BBB 希望这是清楚的, 谢谢你的建议。如果我理解正确并且文件中的顺序正确 $ cat file1 BBB;33 AAA;2 CCC;5 $ cat file2 33;.;.;. 2;.;.;. 5;.;.;. $ paste file1 file2 | sed 's/\([0

我有两个文件是这样的:

文件1引用文件 BBB;33 AAA;2. CCC;五,

文件2 5. 33;.;.;.

我想将文件1第一列中的对应字符串替换为文件2第1列中的对应值,以便:

输出 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,因为这将在粘贴获得读取机会之前覆盖file1。谢谢。似乎或多或少可以工作,但输出格式不正确。也许我应该提到两个文件都是;分开。@g256您可能应该这样做。如果您编辑问题以显示文件、格式,我将对我的答案进行相应的更改。如果您这样做,请不要忘记在此处ping我。@Lev Levitsky抱歉。我刚刚更改了问题中的格式。@g256看起来您只需要添加一个;在命令中,请参见编辑。