ディレクトリに次のファイルがあるとします。
file1.txt
file2.txt
file3.txt
file4
file5
fab
text1
拡張子を持つファイルを削除し.txt
、ファイル名が次に始まる残りのファイルの内容を追加する必要があります。文書(file4
、file5
)を単一のファイルにまとめます。
次のコマンドを試しましたが、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