У меня есть более 50000 файлов в каталоге, таком как file1.txt, file2.txt, ....., file50000.txt. Я хотел бы объединить некоторые файлы, номера файлов которых указаны в следующем текстовом файле (need.txt).Конкатенация огромного количества выборочных файлов из каталога в оболочке
need.txt
1
4
35
45
71
.
.
.
Я пробовал со следующим. Хотя он работает, но я ищу более простой и короткий путь.
n1=1
n2=$(wc -l < need.txt)
while [ $n1 -le $n2 ]
do
f1=$(awk 'NR=="$n1" {print $1}' need.txt)
cat file$f1.txt >> out.txt
((n1++))
done
спасибо. Не могли бы вы предложить мне, если я объединю больше файлов подобного рода. например файл $ 1.txt и infile $ 1.txt – Kay
Если все имена следуют одному и тому же шаблону и вы хотите, чтобы все они были в одном и том же выходном файле, просто добавьте больше записей в 'ARGV' в awk-решении (т. е. добавьте' ARGV [ARGC] = «infile» $ 1 «.txt», ARGC++ 'к блоку). Выполнение этого в 'sed' потребовало бы игры с удерживающим пространством, чтобы дублировать строки, которые я считаю. –