我有两个文件
文件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'
实施例: File1的第一条记录:030055 a 将其与文件2进行比较,此编号模式匹配的记录如下:
03005515077 x和03005577733 xx和03005583838 yy
只需将x,xx和yy替换为a,它将变为
03005515077 a和03005577733 a和03005583838 a
答案 0 :(得分: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"