Я использую cygwin на Windows 7 . У меня есть каталог со всеми текстовыми файлами, и я хочу пройти через него и сохранить данные из второго столбца первых трех строк для каждого файла (1,2) (2,2) и (3,2).
Итак, код будет выглядеть примерно так:
x1[0]=awk 'FNR == 1{print $2}'$file1
x1[1]=awk 'FNR == 2{print $2}'$file1
x1[2]=awk 'FNR == 3{print $2}'$file1
Затем я хочу использовать деление на 100 $x1
плюс 1 для доступа к данным из другого файла и сохранения их в массиве. Так вот:
let x1[0]=$x1[0]/100 + 1
let x1[1]=$(x1[1]/100)+1
let x1[2]=$(x1[2]/100)+1
read1=$(awk 'FNR == '$x1[0]' {print $1}' $file2)
read2=$(awk 'FNR == '$x1[1]' {print $1}' $file2)
read3=$(awk 'FNR == '$x1[2]' {print $1}' $file2)
Сделайте то же самое для другого файла, за исключением того, что для этого нам не нужно $x1
. 1021 *
read4=$(awk 'FNR == 1{print $3,$4,$5,$6}' $file3)
Наконец, просто выведите все эти значения в файл, т.е. read1-4
Нужно сделать это в цикле для всех файлов в папке, не совсем уверен, как это сделать. Сложность в том, что имя файла $file3
зависит от имени файла $file1
,
так что если $file1
= abc123def.fna.map.txt
$file3
будет abc123def.fna
$file2
жестко закодирован в нем и остается неизменным для всех итераций.
file1
- это файл .txt
, часть которого выглядит следующим образом:
99 58900
16 59000
14 73000
file2
содержит 600 строк строк.
'Actinobacillus_pleuropneumoniae_L20'
'Actinobacillus_pleuropneumoniae_serovar_3_JL03'
'Actinobacillus_succinogenes_130Z'
'file3' - это FASTA файл, и первые две строки выглядят так:
>gi|94986445|ref|NC_008011.1| Lawsonia intracellularis PHE/MN1-00, complete genome
ATGAAGATCTTTTTATAGAGATAGTAATAAAAAAATGTCAGATAGATATACATTATAGTATAGTAGAGAA
Выходные данные могут просто записать все 4 чтения в случайный файл или, если возможно, могут сравнить read1, read2, read3, и если он совпадает с read4, то есть основное имя должно совпадать. В моем примере:
Ни один из read1-3
не совпадает с Lawsonia intracellularis
, который является частью read4
. Таким образом, он может просто напечатать success или failture в файл.
ВЫБОР ВЫБОРКИ
Actinobacillus_pleuropneumoniae_L20
Actinobacillus_pleuropneumoniae_serovar_3_JL03
Actinobacillus_succinogenes_130Z
Lawsonia intracellularis
Failture
Извините, я ошибся насчет 6 чтений, просто нужно 4 на самом деле. Еще раз спасибо за помощь.