Создайте файл с разделителями табуляции, содержащий информацию из файла и часть имени файла

У меня есть много файлов, содержащих:

>c_000000000288
abcdefg

>c_000000000270
abcdefg

>c_000000000062
abcdefg

*Note: continues for hundreds of lines

Имена файлов примерно такие:

M07.compare.M010.info500.info2.1.txt
M07.compare.M010.info500.info2.2.txt
M07.compare.M010.info500.info2.3.txt
M07.compare.M010.info500.info2.word.txt

Примечание. Я хотел бы, чтобы код работал для разных диапазонов чисел (например, 1–10 или 1–3) и одновременно включал «слово».

Я хочу, чтобы результатом был файл с разделителями табуляции, содержащий что-то вроде:

c_000000000288   1
c_000000000270   1
c_000000000062   1
c_000000000258   2
c_000000000191   3
c_000000000188   3
c_000000003713   3
c_000000000179   3
c_000000000162   word
c_000000000097   word  

Я пытался найти много форумов и не смог найти решение. До сих пор мне удавалось извлечь только «имя» в файл с разделителями табуляции, но я не понял, как эффективно добавить информацию об имени файла.

Спасибо за помощь!


person Nancy Merino    schedule 07.06.2017    source источник
comment
Извиняюсь! Я добавил больше информации.   -  person Nancy Merino    schedule 08.06.2017
comment
Можете ли вы опубликовать код, который вы написали до сих пор?   -  person Tim    schedule 08.06.2017


Ответы (1)


Все что тебе нужно это:

shopt -s extglob
awk -v OFS='\t' '
FNR==1 { n=split(FILENAME,f,/\./); ext=f[n-1] }
sub(/^>/,""){ print $0, ext }
' M07.compare.M010.info500.info2.{{1..10},word}.txt
person Ed Morton    schedule 07.06.2017