Создайте файл с разделителями табуляции, содержащий информацию из файла и часть имени файла
У меня есть много файлов, содержащих:
>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
Я пытался искать на многих форумах и не смог найти решение. До сих пор я мог только извлечь "имя" в файл с разделителями табуляции, но я не понял, как эффективно добавить информацию об имени файла.
Спасибо за помощь!
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