Regex 将括号内容拆分为新列
我一整天都在尝试提取和分割这个括号内容,但我就是做不到。 我尝试使用sed和tr将“[]”替换为\t,并一步一步地执行,但一点运气都没有Regex 将括号内容拆分为新列,regex,awk,split,brackets,Regex,Awk,Split,Brackets,我一整天都在尝试提取和分割这个括号内容,但我就是做不到。 我尝试使用sed和tr将“[]”替换为\t,并一步一步地执行,但一点运气都没有 tr '[''\t'` 甚至一个朋友也尝试使用vi,但它太复杂了,不起作用: :%s/\([A-Za-z_]*\)\t\([0-9A-Z-]*\)\t\([0-9]*\)\t[A-Z]*\[\(.\).\(.\)\][A-Z]*\t+\([a-z0-9]*\)\t/\1\t\2\t\3\t\4\t\5\t\6\t\7/g 也尝试过python,但它说有太多
tr '[''\t'`
甚至一个朋友也尝试使用vi,但它太复杂了,不起作用:
:%s/\([A-Za-z_]*\)\t\([0-9A-Z-]*\)\t\([0-9]*\)\t[A-Z]*\[\(.\).\(.\)\][A-Z]*\t+\([a-z0-9]*\)\t/\1\t\2\t\3\t\4\t\5\t\6\t\7/g
也尝试过python,但它说有太多的值需要解包
这必须是一个括号之类的问题。
所以,我有这个表,但包含数十万行
Species X-C982 282 AACTGTCCATTGACTCTGATAGTGTAAC[G/A]GAGGAAGATGTGCCTAAAAGGAAGAA scaffold7
Species X-A757 158 CCAAGACAGACAGTGGGGTAGAATTTAC[T/C]ACAACAGGCAGTCACAGTGACAAAGG scaffold7
Species X-G39 842 TGATGAACATCAGACTTTTAAACTTTGC[T/C]CATGCATAAATCTGTATATCACGCTA scaffold9
我需要提取内容并将其从“/”中拆分,因此它看起来像这样(所有选项卡分开):
很抱歉没有发布任何好的代码,但它们都不起作用
我知道这在excel中是很容易做到的,但有时处理超过一百万行的代码是不可能的。
提前谢谢
$ awk -F'[][[:space:]/]+' -v OFS='\t' '{print $1, $2, $3, $5, $6, $8}' file
Species X-C982 282 G A scaffold7
Species X-A757 158 T C scaffold7
Species X-G39 842 T C scaffold9
如果你将来还要做更多的文本操作任务,请阅读Arnold Robbins的《有效的Awk编程》,第四版
如果您将来要执行更多的文本操作任务,请阅读Arnold Robbins的《有效的Awk编程》第四版。使用Awk,您可以如下定义字段分隔符:
awk -F'[] ][ACTG]*[[ ]|/' '$1=$1' file
使用awk,可以如下定义字段分隔符:
awk -F'[] ][ACTG]*[[ ]|/' '$1=$1' file
如果对核苷酸序列中可能出现多少次“[X/Y]”有任何疑问,那么最好检查一下 假设输入以标签分隔,3美元是长核苷酸序列,下面说明了可以做什么:
awk -F\\t '
BEGIN{OFS=FS}
$3 ~ /\[/ { split($3, a, "[][/]"); print $1,$2,a[2],a[3],$4; next}
{print $1,$2,"","",$4} '
如果对核苷酸序列中可能出现多少次“[X/Y]”有任何疑问,那么最好检查一下 假设输入以标签分隔,3美元是长核苷酸序列,下面说明了可以做什么:
awk -F\\t '
BEGIN{OFS=FS}
$3 ~ /\[/ { split($3, a, "[][/]"); print $1,$2,a[2],a[3],$4; next}
{print $1,$2,"","",$4} '
逐行阅读并替换为:
\S*\[([A-Z])\/([A-Z])]\S*
->\1\t\2
这是学习人类的一种很酷的方式。感谢逐行阅读并替换为:\S*\[([A-Z])\/([A-Z])]\S*
->\1\t\2
这是学习人类的一种很酷的方式。谢谢你,伙计。是的,我是在你的建议之后才开始读的,但是你知道。。这需要一段时间。我真的很想弄明白这一点。由于所有列都以任何方式显示,所以选项卡似乎有问题。。我认为这是一个标签编号的问题,但没有。其中一个正在拖动另一个,或者没有被制表符隔开。你是说你的输入文件中有制表符吗?你的问题中没有提到这一点。我已经更新了答案,所以它可以处理输入文件中的任何空白。非常感谢。是的,我是在你的建议之后才开始读的,但是你知道。。这需要一段时间。我真的很想弄明白这一点。由于所有列都以任何方式显示,所以选项卡似乎有问题。。我认为这是一个标签编号的问题,但没有。其中一个正在拖动另一个,或者没有被制表符隔开。你是说你的输入文件中有制表符吗?你的问题中没有提到这一点。我已经更新了答案,因此它可以处理输入文件中的任何空白。