创建一个文件,其中包含当前文件夹中具有给定字符串的所有文件的内容(例如参数1),数据将一个接一个地存在(每个文件附加到结尾)。该文件的名称将是给定的字符串。
我想到了以下内容,但它不起作用:
grep $1 * >> fnames #places all the names of the right files in a file
for x in fnames
do
cat x >> $1 #concat the files from the list
done
rm fnames
在同一个音符上,是否有一个网站解决了这样或类似的练习?
答案 0 :(得分:2)
您可以使用process substitution执行此类操作:
find
这假设您的目录只有文件而没有子目录。
如果还有子目录,则需要将grep
与find . -maxdepth 1 -type f -exec grep -q "search-pattern" {} \; -print0 |
xargs -0 cat > /path/to/newfile
一起使用:
.state('home', {
url: '/home?state',
controller: 'RouteCtrl'
})
答案 1 :(得分:1)
怎么样(假设你不担心名字中带有空格或换行符或shell globs / etc。的文件,因为这些文件在这里无法正常工作):
for O in $(grep -l $1 *)
do
cat "$O" >> $1
done