如何使用AWK在字段中添加字母
我有一个100K行的gtf文件,我只想在第一个字段中添加一个字母“m”:如何使用AWK在字段中添加字母,awk,Awk,我有一个100K行的gtf文件,我只想在第一个字段中添加一个字母“m”: chr1 HAVANA gene 3073253 3074322 . + . gene_id "ENSMUSG00000102693.1"; gene_type "TEC"; gene_name "4933401J01Rik"; level 2; havana_gene "OTTMUSG00000049935.1"; chr1 HAVANA transcript
chr1 HAVANA gene 3073253 3074322 . + . gene_id "ENSMUSG00000102693.1"; gene_type "TEC"; gene_name "4933401J01Rik"; level 2; havana_gene "OTTMUSG00000049935.1";
chr1 HAVANA transcript 3073253 3074322 . + . gene_id "ENSMUSG00000102693.1"; transcript_id "ENSMUST00000193812.1"; gene_type "TEC"; gene_name "4933401J01Rik"; transcript_type "TEC"; tr
chr1 HAVANA exon 3073253 3074322 . + . gene_id "ENSMUSG00000102693.1"; transcript_id "ENSMUST00000193812.1"; gene_type "TEC"; gene_name "4933401J01Rik"; transcript_type "TEC"; transcript
chr1 ENSEMBL gene 3102016 3102125 . + . gene_id "ENSMUSG00000064842.1"; gene_type "snRNA"; gene_name "Gm26206"; level 3;
chr1 ENSEMBL transcript 3102016 3102125 . + . gene_id "ENSMUSG00000064842.1"; transcript_id "ENSMUST00000082908.1"; gene_type "snRNA"; gene_name "Gm26206"; transcript_type "snRNA"; tran
chr1 ENSEMBL exon 3102016 3102125 . + . gene_id "ENSMUSG00000064842.1"; transcript_id "ENSMUST00000082908.1"; gene_type "snRNA"; gene_name "Gm26206"; transcript_type "snRNA"; transcript_n
chr1 HAVANA gene 3205901 3671498 . - . gene_id "ENSMUSG00000051951.5"; gene_type "protein_coding"; gene_name "Xkr4"; level 2; havana_gene "OTTMUSG00000026353.2";
期望的输出是:
mchr1 HAVANA gene 3073253 3074322 . + . gene_id "ENSMUSG00000102693.1"; gene_type "TEC"; gene_name "4933401J01Rik"; level 2; havana_gene "OTTMUSG00000049935.1";
mchr1 HAVANA transcript 3073253 3074322 . + . gene_id "ENSMUSG00000102693.1"; transcript_id "ENSMUST00000193812.1"; gene_type "TEC"; gene_name "4933401J01Rik"; transcript_type "TEC"; tr
mchr1 HAVANA exon 3073253 3074322 . + . gene_id "ENSMUSG00000102693.1"; transcript_id "ENSMUST00000193812.1"; gene_type "TEC"; gene_name "4933401J01Rik"; transcript_type "TEC"; transcript
mchr1 ENSEMBL gene 3102016 3102125 . + . gene_id "ENSMUSG00000064842.1"; gene_type "snRNA"; gene_name "Gm26206"; level 3;
mchr1 ENSEMBL transcript 3102016 3102125 . + . gene_id "ENSMUSG00000064842.1"; transcript_id "ENSMUST00000082908.1"; gene_type "snRNA"; gene_name "Gm26206"; transcript_type "snRNA"; tran
mchr1 ENSEMBL exon 3102016 3102125 . + . gene_id "ENSMUSG00000064842.1"; transcript_id "ENSMUST00000082908.1"; gene_type "snRNA"; gene_name "Gm26206"; transcript_type "snRNA"; transcript_n
mchr1 HAVANA gene 3205901 3671498 . - . gene_id "ENSMUSG00000051951.5"; gene_type "protein_coding"; gene_name "Xkr4"; level 2; havana_gene "OTTMUSG00000026353.2";
您可以使用
awk
将字母添加到行的开头。此处$0
表示整行
echo "hey there" |awk '{$0="m"$0}1'
mhey there
或sed
:此处^
表示行的开始。如果要将更改直接反映到文件中,请使用-i
或-i.bak
标志和sed
命令
echo "hey there" |sed 's/^/m/'
mhey there
您可以使用
awk
将字母添加到行的开头。此处$0
表示整行
echo "hey there" |awk '{$0="m"$0}1'
mhey there
或sed
:此处^
表示行的开始。如果要将更改直接反映到文件中,请使用-i
或-i.bak
标志和sed
命令
echo "hey there" |sed 's/^/m/'
mhey there
使用sed时,这一点更好:
sed -e 's/^/m/' file
添加-i
以就地更改。(-i'
适用于macos)
使用awk
,可以这样做:
awk 'sub(/^/,"m")' file
使用sed时,这一点更好:
sed -e 's/^/m/' file
添加-i
以就地更改。(-i'
适用于macos)
使用awk
,可以这样做:
awk 'sub(/^/,"m")' file
在这里添加1个以上的方式,其中不编辑或添加字符的行
awk '{print "m"$0}' Input_file
在这里添加1个以上的方式,其中不编辑或添加字符的行
awk '{print "m"$0}' Input_file
$0=“m”$0
足够,可以保存{}和1
。保持{}
和1
不变。删除它们会使代码3字符更简短,但不太清晰,在其他类似情况下会使其不那么健壮,因此这不是一个好的折衷办法,是一个坏习惯。$0=“m”$0
足够了,可以保存{}和1
。保持{}
和1
不变。删除它们会使代码3字符更简短,但不那么清晰,并且在其他类似情况下会使代码不那么健壮,因此这不是一个好的折衷办法,也是一个坏习惯。