我不是程序员而且我不知道我在做什么,所以这可能已经在很多时候得到了回答,但是我不知道找到答案的条款(或者下一步该做什么我找到了答案)...
我有一个文本文件,里面有一堆我要替换的字符串,还有一个excel文件,其中一列是要替换的字符串,一列是替换。
要替换的字符串看起来像这样(但命名不一致所以它不能只是一个减少,需要一个查找表):
gi|5566332|gb|AF164131.1| Uroleptus pisces macronuclear small-subunit ribosomal RNA gene, complete sequence
使用以下内容替换它们的字符串:
AF164131
(1)我应该如何格式化查找表 - 类似于制表符分隔文件?
(2)如何编写脚本来进行替换?
这可能只是一些简单的BASH或sed脚本,但我还没有真正掌握如何编写它们......
答案 0 :(得分:1)
您可以像这样使用awk
:
awk '{sub(/AF164131/,"new txt")}1' file
答案 1 :(得分:1)
将excel电子表格以制表符分隔的文本导出到文件名“map.txt”,然后执行以下操作:
awk '
NR==FNR { map[$1] = $2; next }
$0 in map { $0 = map[$0] }
{ print }
' map.txt textfile
假设textfile包含您要替换的字符串。如果这对您不起作用,请使用几行代表性输入和预期输出更新您的问题,因为您的文本文件格式不明确。