我试图在一个复杂的文本文件中交换两个字符,但它不起作用。它看起来像这样:
cat 1
_**A** # 2 # 118 # -1 # ID=**B**;partial=10;start_type=GTG
GTGTCAAAAGGCAAGTTAACCTTCGCAATCAACTTCGCATTGGTAGGTGCGTATCTGGGCGCCATTAAGA
_**C** # 100 # 204 # -1 # ID=**D**;partial=01;start_type=Edge
GAGGAGATAAAGAAATTACAGGAAACCGATGAAGAAATAGGCAAAAACGAGCATATTGTTGCCTATCTTC
GTGCCGTTAGGGAAATGTGTCAAAAGGCAAGTTAA
我想像这样交换A和B,C和D:
_**B** # 2 # 118 # -1 # ID=**A**;partial=10;start_type=GTG
GTGTCAAAAGGCAAGTTAACCTTCGCAATCAACTTCGCATTGGTAGGTGCGTATCTGGGCGCCATTAAGA
_**D** # 100 # 204 # -1 # ID=**C**;partial=01;start_type=Edge
GAGGAGATAAAGAAATTACAGGAAACCGATGAAGAAATAGGCAAAAACGAGCATATTGTTGCCTATCTTC
GTGCCGTTAGGGAAATGTGTCAAAAGGCAAGTTAA
我意识到这是一个乏味的问题。。。但我看不出解决方案:(
对于上面的示例,您可以执行以下操作:
cat <file> | sed -e 's/**B**/**A**/'
-e 's/**A**/**B**/'
-e 's/**D**/**C**/'
-e 's/**C**/**D**/'
其中包含原始代码。
请注意,上面的代码片段仅适用于每行仅**A**
和**B**
一次的情况。对于更复杂的示例,您需要查看sed命令的手册