Unixで複数のファイルの内容を1つのファイルに書き込むには?

Unixで複数のファイルの内容を1つのファイルに書き込むには?

ディレクトリに次のファイルがあるとします。

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

拡張子を持つファイルを削除し.txt、ファイル名が次に始まる残りのファイルの内容を追加する必要があります。文書file4file5)を単一のファイルにまとめます。

次のコマンドを試しましたが、5つのファイルの内容をすべて1つのファイルに追加します。

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

答え1

可能であれば、bash次のものを使用できます。

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

または以下を使用してくださいzsh

setopt extended_glob
cat ^*.txt > final

答え2

探す。 ! -name '*.txt' | xargs猫>>最終

答え3

この試み

#!/bin/bash

find . -name '*.txt' -exec rm {} +

for f in file*
do
    cat $f >> final_file
done

ファイルを削除せずに1行で.txt無視してください。cat

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

関連情報