Справочная информация: У меня есть 48 файлов, которые я пытаюсь разделить по значению в определенном столбце с помощью awk.Пример моих данных:
chr pos ref alt reffrq info rs pval effalt gene
chr1 13417 C CGAGA 0.0915493 1 rs777038595 0.978587 0.0051328 DDX11L1
chr1 17559 G C 0.00662252 1 rs866150608 0.138321 0.985859 DDX11L1
chr1 54421 A G 0.0448276 1 rs146477069 0.534267 0.177514 BLAH
chr1 54490 G A 0.191489 1 rs141149254 0.830873 0.0307553 BLAH
. В этом файле столбец gene
состоит из тысяч различных имен, и я хочу разбить эти огромные файлы в файл для каждого имени гена (так чтоЯ заканчиваю здесь с DDX11L1.txt
и BLAH.txt
).
Согласно коду, найденному здесь в предыдущем вопросе У меня есть решение, которое будет работать над каждым файлом один за другим:
awk '{print >> $10".txt"}' tissue1.txt
Вопрос: Однако теперь я хочу выполнить итерацию этого автоматически для каждого из 48 файлов и разделить каждый из файлов разделения на новый каталог для каждого из них.больших файлов.
Это то, что я до сих пор придумал (где tissue
определено ранее из таблицы и также является префиксом для каждого из больших файлов):
mkdir /inputs/"$tissue"
workingDir=/inputs/"$tissue"
awk -v tissue="$tissue" -v workingDir="$workingDir" '{print >> "$workingDir"/$10".txt"}' "$tissue"_input.txt
Проблема в том, что здесь выводятся файлы в тот же каталог, в котором я сейчас нахожусь, а затем имена файлов $workingDirGENENAME.txt
, что, очевидно, не то, что я хочу.Поэтому, по сути, я просто не понимаю, куда мне нужно поместить переменные для выходного каталога.