Я пытался извлечь строки из файла, разделенного табуляцией, если он содержал определенное слово в 4-м столбце. Например, если входной файл test.txt имеет вид:
chr 8 1234 abc ; xyz
chr 8 1255 abc
chr 8 987 xyz
chr 8 5467 jxyzm
Следующий код правильно выводит только 1-ю и 3-ю строку:
gawk -F"\t" ' { if($4 ~ /\<xyz\>/) print $0 } ' test.txt >> test.out
Однако, когда я пытаюсь запустить это в al oop, в сценарии bash мой выходной файл пуст. код, который я использую:
while read id
do
OFILE=${ODIR}/${id}.txt
gawk -v id="$id" -F"\t" ' { if($4 ~ /\<id\>/) print $0 } ' ${IFILE} >> ${OFILE}
done < ${GFILE}
В файле $ {GFILE} по одному слову в строке, например:
xyz
fg45
tre2y
Что я делаю не так?
спасибо!
Отредактировано в:
- Добавить четвертую строку во входной файл
- Добавлен -v id = "$ id" в команду ... скрипт все еще не работает не работает!