У меня есть файл, содержащий гены в следующем формате. Я хочу обработать файл и сделать в каждой строке один ген (разделить несколько генов в одной строке на несколько строк).set " x3b" в качестве разделителя
C10orf32
C10orf32,C10orf32-ASMT
C19orf33\x3bYIF1B
C19orf73,LIN7B
C19orf73,PPFIA3\x3bLIN7B
Я использовал следующую команду и хочу установить "" и "\ X3B" в качестве разделителей, но "\ X3B" все еще находится в OUTFILE, как показано ниже
awk 'BEGIN {FS=",|\x3b";} {for (i=1;i<=NF;i++) {print $i}}' file.txt
Выхода:
C10orf32
C10orf32
C10orf32-ASMT
C19orf33\x3bYIF1B
C19orf73
LIN7B
C19orf73
PPFIA3\x3bLIN7B
, но я хочу
C10orf32
C10orf32
C10orf32-ASMT
C19orf33
YIF1B
C19orf73
LIN7B
C19orf73
PPFIA3
LIN7B
Что я делаю неправильно?
'\ x3b' - код выхода; Awk рассматривает его как символ [точка с запятой] (http://www.fileformat.info/info/unicode/char/3b/index.htm). Если вы хотите, чтобы буквальная обратная косая черта, буква x, цифра 3, буква b, вам нужно удвоить обратную косую черту, чтобы избежать ее. – tripleee
Спасибо. Я удвоил \\ с помощью следующей команды, но не работает awk 'BEGIN {FS = ", \\ x3b";} {для (i = 1; i <= NF; i ++) {print $ i}} 'file.txt –
Я также пробовал gawk, но он тоже не работает. –