【问题标题】:grep and output pattern after match string匹配字符串后的grep和输出模式
【发布时间】:2014-09-07 07:16:00
【问题描述】:

我有两个文件,其中 file1 中的字符串与文件 1 中的部分字符串匹配。

问题 1: 匹配后如何输出部分?

文件1:

 TGAGGTAGTAGTTTGTACAGTT
 TGAGGTAGTAGTTTGTGCTGTT
 ACATACTTCTTTATATGCCCATA

文件2:

CGCTCCGTTCTCTTTTGCCTGATTCCAGGCTGAGGTAGTAGTTTGTACAGTTTGAGGGTCTATGATACCACCCGGTACAGGAGATAA
GTCCGCCGGCTCCCACACCATGGCCCTGGCTGAGGTAGTAGTTTGTGCTGTTGGTCGGGTTGTGACATT
TTGTGCACACTGAACCTACCTGCTTGGGACACATACTTCTTTATATGCCCATATGAAC

输出:

 TTGCCTGATTCCAGGCTGAGGTAGTAGTTTGTACAG
 CACACCATGGCCCTGGCTGAGGTAGTAGTTTGTGCTG
 CCTGCTTGGGACACATACTTCTTTATATGCCC

问题2: 如何在比赛前输出部分?

文件1:

GCTGAGGTAGTAGTTTGTACAG
CTGGCTGAGGTAGTAGTTTGTGCT
TTATATGCCC

文件2:

CGCTCCGTTCTCTTTTGCCTGATTCCAGGCTGAGGTAGTAGTTTGTACAG
GTCCGCCGGCTCCCACACCATGGCCCTGGCTGAGGTAGTAGTTTGTGCTG
TTGTGCACACTGAACCTACCTGCTTGGGACACATACTTCTTTATATGCCC

输出:

CGCTCCGTTCTCTTTTGCCTGATTCCAG
GTCCGCCGGCTCCCACACCATGGCCCTGG
TTGTGCACACTGAACCTACCTGCTTGGGACACATACTTCT

grep -A 如果我只有一种模式也可以工作。但是我有多个模式(file1)

【问题讨论】:

    标签: string perl awk sed grep


    【解决方案1】:

    赛前部分:

    awk 'NR==FNR{a[NR]=$0;next} {split($0,b,a[FNR]); print b[1]}' file1 file2
    

    之后的部分:

    awk 'NR==FNR{a[NR]=$0;next} {split($0,b,a[FNR]); print b[2]}' file1 file2
    

    【讨论】:

    • 如果我想在比赛前输出部分怎么办?
    • 更新您的问题以显示您的完整问题的一些示例输入和预期输出。不要零碎地分发,否则你可能会得到一个比我们事先知道你想要什么更糟糕的解决方案。
    • 在第一个 - 你真的想要输出前面的空格还是不在乎?
    • 不,我不想要空格。
    • 好的,这是一个非常不同的问题,解决方案要简单得多。发布准确的输入/输出非常重要。我会更新我的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-01
    • 1970-01-01
    • 2022-08-14
    • 2014-03-03
    相关资源
    最近更新 更多