我有一个这种格式的大文件,我向您展示的前几行包括标题。
gene c1 c2 c3 c4 c5 c6 c7 c8
G1*1 0 0 0 0 0 0 0 0
G2*2 0 0 0 0 1 1 1 1
G3*3 0 0 2 2 44 44 62 62
G4*4 22 0 46 0 1308 7 1773 4
Run Code Online (Sandbox Code Playgroud)
基因的第一行是标题行。我想保持原样,然后我想用 FS = * 拆分剩余的行,以便现在我有一个看起来像这样的文件作为输出
gene coord c1 c2 c3 c4 c5 c6 c7 c8
G1 1 0 0 0 0 0 0 0 0
G2 2 0 0 0 0 1 1 1 1
G3 3 0 0 2 2 44 44 62 62
G4 4 22 0 46 0 1308 7 1773 4
Run Code Online (Sandbox Code Playgroud)
因此,我还想在名为“coord”的标题行中放置一个额外的字段,这样当我拆分后续行时,所有内容都已排序。
我知道如何使用 awk 进行拆分,但标题行让我感到困惑
awk -F '*' -v OFS="\t" '{print $1,$2}' ##This is for 2nd line and onwards
Run Code Online (Sandbox Code Playgroud)
标题行是一种特殊情况,因此您可以将其作为特殊情况处理。
awk -F '*' -v OFS='\t' \
'NR == 1 { sub(/^gene/, "&" OFS "coord"); print; next }
{ print $1, $2 }'
Run Code Online (Sandbox Code Playgroud)