просто вы также можете:
awk '$4+$5+$8+$9' infile
и сохранить строку заголовка:
awk 'NR==1 || $4+$5+$8+$9' infile
awk 'NR>1{gsub(/\"/,"",$0);gsub(/\.[0-9]*/,"",$1)}1' filename
выход
"baseMean" "log2FoldChange" "lfcSE" "stat" "pvalue" "padj"
ENSG00000000003 11.3434183210348 0.753849141787545 0.682104979689654 1.10518052826785 0.269081372382168 0.999928163137131
ENSG00000000419 793.733816508413 -0.256066185652526 0.133681398896401 -1.91549600592503 0.0554292780227467 0.863889514659372
ENSG00000000457 948.240987147508 -0.088027064401221 0.0869481579436567 -1.01240861776811 0.3113427195966
$ sed 's/^"\(ENS[[:alnum:]]*\)\..*"/"\1"/' file
"baseMean" "log2FoldChange" "lfcSE" "stat" "pvalue" "padj"
"ENSG00000000003" 11.3434183210348 0.753849141787545 0.682104979689654 1.10518052826785 0.269081372382168 0.999928163137131
"ENSG00000000419" 793.733816508413 -0.256066185652526 0.133681398896401 -1.91549600592503 0.0554292780227467 0.863889514659372
"ENSG00000000457" 948.240987147508 -0.088027064401221 0.0869481579436567 -1.01240861776811 0.3113427195966
Приведенная выше команда sed
удаляет версию из стабильных идентификаторов Ensembl только в первом столбце. Он делает это путем сопоставления "ENS
в начале строки, за которым следует любое количество буквенно-цифровых символов, точка и некоторый символ кавычек, не являющийся -. Точка и символы без кавычек -отбрасываются с помощью замены.
Чтобы также удалить двойные кавычки, измените текст замены с "\1"
на просто \1
.
Если вы уверены, что к стабильным идентификаторам всегда привязана версия, вы можете сократить это до следующего выражения, которое просто удаляет первую подстроку между точкой и двойной кавычкой:
$ sed 's/\..*"/"/' file
"baseMean" "log2FoldChange" "lfcSE" "stat" "pvalue" "padj"
"ENSG00000000003" 11.3434183210348 0.753849141787545 0.682104979689654 1.10518052826785 0.269081372382168 0.999928163137131
"ENSG00000000419" 793.733816508413 -0.256066185652526 0.133681398896401 -1.91549600592503 0.0554292780227467 0.863889514659372
"ENSG00000000457" 948.240987147508 -0.088027064401221 0.0869481579436567 -1.01240861776811 0.3113427195966
Если вам нужно удалить кавычки, вы можете сделать это с помощью выражения 2,$ s/"//g
, например,
sed -e 's/\..*"/"/' -e '2,$ s/"//g' file
Или вы можете просто передать все через tr -d '"'
, чтобы удалить все кавычки.
sed 's/\..*"/"/' file | tr -d '"'