sed设置文件中提取文本的格式

sed设置文件中提取文本的格式,sed,Sed,我正在使用sed从一个大文件中提取。下面的内容似乎是以下面的格式提取数据,我不确定如何清理文件以查看所需的输出。也许有更好的方法,我只是不知道怎么做。谢谢 任何引导符号,或:或;如果它在$2中的文本前面,则将被删除 $3中的所有逗号转换为; $3删除了文本前面的空白 输出中有3个制表符删除字段 分隔的文件空间 81201 APC gene analysis; full gene sequence 81210 BRAF , gene analysis, full gene sequence,

我正在使用sed从一个大文件中提取。下面的内容似乎是以下面的格式提取数据,我不确定如何清理文件以查看所需的输出。也许有更好的方法,我只是不知道怎么做。谢谢

任何引导符号,或:或;如果它在$2中的文本前面,则将被删除 $3中的所有逗号转换为; $3删除了文本前面的空白 输出中有3个制表符删除字段 分隔的文件空间

81201 APC   gene analysis; full gene sequence
81210 BRAF  , gene analysis, full gene sequence, V600 variant
81201   APC gene analysis;full gene sequence
81210   BRAF    gene analysis;full gene sequence;V600 variant
所需的输出选项卡已分隔

81201 APC   gene analysis; full gene sequence
81210 BRAF  , gene analysis, full gene sequence, V600 variant
81201   APC gene analysis;full gene sequence
81210   BRAF    gene analysis;full gene sequence;V600 variant
塞德

原始文件


我不确定显示的命令是否按预期工作,但由于这不是您问题的一部分,我将忽略它

以下是使用两个相对简单的表达式进行最终清理的方法:

sed -e 's/^\s*\([^ \t]\+\)\s\+\([^ \t]\+\)\s\+[,;]\?\s*\(.*\)/\1\t\2\t\3/' \ -e 's/[,;]\s*/;/g' 输出


你描述中的2美元和3美元是什么?用你自己的话来说,'s/[^]*//g'应该做什么?你确定你不想跳过一些括号吗?$2是APC和BRAF$3是基因分析;第1系的全基因序列和第3系的V600变体的基因分析全基因序列。。。。在创建该文件时,我使用sed-e的//[^]*//g'删除括号,然后将其输送到每2行合并一次的sed。我会将原始文件添加到帖子中。谢谢:。啊,那么这和你的问题完全没有关系?为什么把它贴在这里?你应该发布你所做的尝试来解决剩下的问题。如果我没有弄错的话,你需要交换这些命令。首先删除换行符,然后删除积垢。非常感谢您的帮助和解释:
81201 APC   gene analysis; full gene sequence
81210 BRAF  , gene analysis, full gene sequence, V600 variant
81201   APC     gene analysis;full gene sequence
81210   BRAF    gene analysis;full gene sequence;V600 variant