有没有办法获取cat
给定目录中的所有文件,但以特定文件开头和结尾?
例如,假设我有:file1.js、file2.js、file3.js、file4.js、file5.js——实际上我想要cat file2.js file*.js file3.js > /var/www/output.js
我尝试了几种不同的方法
find ! -name "file2.js" ! -name "file3.js" -type f -exec cat file2.js {} file3.js > /var/www/js/output.js \;
find ! -name "file2.js" ! -name "file3.js" -type f | xargs -I files cat file2.js files file3.js > /var/www/output.js
但我能得到的最好的结果是在所有其他文件之前添加 file2.js 并在所有其他文件之后添加 file3.js (多次)
我知道我可以手动按照我想要的顺序指定文件,但这是不可维护的(我预计可能有> 100个文件)。
我浏览过man cat
,以及一些专门的网站xargs
,find
但cat
无济于事。
提前致谢。
答案1
使用 bash 中的 extglob 选项你可以做到这一点:
$ shopt -s extglob
$ cat file2.js !(file[23].js) file3.js > /var/www/output.js