首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在文件B中,从A文件中查找模式,然后用C文件中的模式替换,逐行

在文件B中,从A文件中查找模式,然后用C文件中的模式替换,逐行
EN

Stack Overflow用户
提问于 2021-02-12 08:48:27
回答 5查看 96关注 0票数 1

我有一个模式文件(fileA.txt),需要在一个大文件(fileB.txt)中搜索它,并且需要用另一个文件(fileC.txt)示例中的模式替换它们:

代码语言:javascript
运行
复制
fileB.txt
4472534
8BC4232
3533221
333553D
8645141
2412AAA

我想在fileB中搜索这个模式:

代码语言:javascript
运行
复制
fileA.txt
BC423
33221
12AAA

然后,我想用fileC中的模式逐行替换它们:

代码语言:javascript
运行
复制
fileC.txt
66FF7
11GYT
2HHJK

预期产出:

代码语言:javascript
运行
复制
4472534
866FF72
3511GYT
333553D
8645141
242HHJK

我写了这样的东西:

代码语言:javascript
运行
复制
grep -f  fileA.txt fileB.txt | xargs sed -i fileC.txt

然而,它正确地搜索模式,但替代可能是不正确的。有什么建议吗?

代码语言:javascript
运行
复制
fileA (pattern to search)
CAAGATTTTCTTTGCCGAGACTCAGTGGGG
fileB
>AMP_4 RS0255 CENPF__ENST00000366955.7__6322__30__0.43333__69.25__1 RS0247
CAGTTGTGCAATTTGGTTTTCCAGCTCACA
>AMP_4 RS0451 CENPF__ENST00000366955.7__10108__30__0.5__71.1396__1 RS0247
GAAGCCTGCAGCCCTCACTGGAAATAAACA
>AMP_4 RS0451 CENPF__ENST00000366955.7__9236__30__0.5__69.816__1 RS0332
CAAGATTTTCTTTGCCGAGACTCAGTGGGG
>AMP_4 RS0451 CENPF__ENST00000366955.7__8140__30__0.43333__68.033__1RS0255
GAGCTCCTTCAATTGATCTTTGCTGCTCTT
fileC (pattern to replace)
GGAGGATGGTGCCTGAATCTACTGGGCTCC
EN

Stack Overflow用户

发布于 2021-02-12 15:41:15

这可能适用于您(GNU和并行):

代码语言:javascript
运行
复制
parallel echo 's/{1}/{2}/' ::::+ file[AC] | sed -f - fileB

构建一个sed脚本,然后以fileB作为输入运行脚本。

注:::::+模拟粘贴命令,{1}{2}模拟fileA和fileC中每一行的值。

票数 1
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66168741

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档