假设在一个目录中有一些文件,例如:
file1.txt
file2.txt
file3.txt
file4
file5
fab
text1
我需要消除.txt
扩展名的文件并附加文件名以以下开头的剩余文件的内容文件( file4
, file5
) 到单个文件。
我尝试了以下命令,但它将所有 5 个文件内容附加到一个文件中。
ls -ltr file*|grep -vE ".txt" | cat * > final
答案1
如果有的话bash
,您可以使用以下内容:
shopt -s extglob
cat !(*.txt) > final
或者使用zsh
:
setopt extended_glob
cat ^*.txt > final
答案2
寻找 。 ! -名称 '*.txt' | xargs 猫 >> 最终
答案3
尝试这个
#!/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