如果在两个脚本之间找到通用模式,则将脚本中的特定字符串替换为另一个字符串

时间:2016-04-30 07:14:44

标签: c++ mysql shell

我有两个示例脚本:

SAMPLE1:

Header1234578
12345abcdN qwerty
67890efghN qwerty
Trailer0000002

样品2:

12345
65432
56789

所以,我需要的是,如果sample2中的字符串与sample1中的字符串匹配, 位置10(即N)处的字段应仅在找到匹配的那一行用Y替换。

尝试过的代码:

  

cat Sample2 |同时阅读LINE
      做
      $ FLAG_FOUND = grep $ LINE Sample1
      如果[[$? -eq 0]]
      {
      sed' s / ^(。{9})./ \ Y /'样品1>>样品3
      }

1 个答案:

答案 0 :(得分:0)

您可以使用此awk命令:

awk 'FNR==NR{a[$1]; next} FNR>1 {
   for (i in a) if ($1 ~ i) {
     $0 = substr($0, 1, 9) "Y" substr($0, 11)
     break
   }
} 1' sample2 sample1

Header1234578
12345abcdY qwerty
67890efghN qwerty
Trailer0000002