Некоторые подробности о форматировании ваших данных будут полезны. Без каких-либо подробностей нам придется сделать некоторые предположения:
В таком случае попробуйте это:
grep -f list_of_SNPs.txt very_large.txt | cut -f 1,2,3 > new_file.txt
Похоже, вы хотите от nl
до выровнять по левому краю с шириной поля 3:
... | nl -nln -w3 -s '- '
или эквивалентная ширина поля 2, если вы хотите явно включить начальный пробел в строку разделителя:
.... | nl -nln -w2 -s ' - '
Вместо использования
… | nl -w1 -s ' - ' | …
для печати номеров строк, вместо этого вы можете использовать awk
и отформатировать строку с помощьюprintf
:
… | awk '{printf "%-2s - %s\n",NR,$0}' | …
Первая идея, которая приходит на ум, это использовать (GNU)sed
вот так:
sed -E 's/^([1-9]) -/\1 -/'
добавляется в конце ваших команд перед >>
.