【问题标题】:Replace a particular string in script with another string if a pattern is found common between two scripts如果发现两个脚本之间共有的模式,则将脚本中的特定字符串替换为另一个字符串
【发布时间】:2016-08-25 10:05:01
【问题描述】:

我有两个示例脚本:

样品1:

Header1234578
12345abcdN qwerty
67890efghN qwerty
Trailer0000002

样本2:

12345
65432
56789

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

尝试的代码:

猫样本2 |在阅读 LINE

$FLAG_FOUND=grep $LINE Sample1
如果[[$? -eq 0]]
{
sed 's/^(.{9})./\Y/' Sample1 >>Sample3
}

【问题讨论】:

  • 我必须为此在 unix 中编写一个 shell 脚本
  • 好的,但是你必须展示你尝试的代码

标签: c++ mysql shell


【解决方案1】:

你可以使用这个 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

【讨论】:

    猜你喜欢
    • 2018-07-08
    • 2012-10-24
    • 2020-04-04
    • 1970-01-01
    • 2017-03-28
    • 2012-11-05
    • 2021-06-20
    • 1970-01-01
    相关资源
    最近更新 更多