Как записать содержимое нескольких файлов в один файл в Unix?

Предположим, что в каталоге есть такие файлы, как:

file1.txt file2.txt file3.txt file4 file5 fab text1 

Мне нужно удалить файлы с расширением .txt и добавить содержимое оставшихся файлов, имеющих имя файла, начатое с файла ( file4 , file5 ), в один файл.

Я попробовал команду ниже, но добавляет все 5 файлов в один файл.

 ls -ltr file*|grep -vE ".txt" | cat * > final 

Может ли кто-нибудь помочь в этом?

Если у вас есть доступ к bash , вы можете использовать следующее:

 shopt -s extglob cat !(*.txt) > final 

Или используя zsh :

 setopt extended_glob cat ^*.txt > final 

найти . ! -name '* .txt' | xargs cat >> final

Попробуй это

 #!/bin/bash find . -name '*.txt' -exec rm {} + for f in file* do cat $f >> final_file done 

В одной строке без удаления .txt файлов, но игнорируя их для cat

 $ find . -name 'file*' ! -name '*.txt' -exec cat {} \; > final