-1

我有两个文件

文件 1:

030055 a
033366 b

文件 2:

03005515077 x||03215549849 y||03336678899 z||03005577733 xx||03005583838 yy

需要一个 Shell 脚本逐行读取文件 1 (030055 a),分离数字值 (030055),在文件 2 中找到它。如果找到,将字符值替换为 '030055 a' 中的 'a'。

示例:文件 1 的第一条记录:030055 a 将此与文件 2 进行比较,此数字模式匹配的记录如下

03005515077 x 和 03005577733 xx 和 03005583838 yy

只需将 x、xx 和 yy 替换为 a 即可

03005515077 a 和 03005577733 a 和 03005583838 a

4

1 回答 1

1

这些方面的东西(未经测试);

#!/bin/bash

while read line
do
    COL1 = `cat $line | awk '{print $1}'`
    COL2 = `cat $line | awk '{print $2}'`
    sed "s/(${COL1}[0-9]+)[^||]*||/\1 ${COL2}||/g" file_2 > file_2.out
    mv file_2.out file_2
done < "file_1"
于 2012-10-15T18:55:08.093 回答