2014-02-25 159 views
2

我想创建一个带有grep搜索输出的文件,但是在搜索中包含的文件夹中。如果我这样做:用搜索文件夹中的grep搜索创建一个文件

grep -rnw . -e "text" > test/files.txt 

它永远不会结束,因为它总是添加一个files.txt。完成后我该怎么做?

grep -rnw . -e "text" >| test/files.txt 

这给出了与前一个相同的输出。 有什么想法?

回答

1

使用父目录:

grep -rnw . -e "text" > ../files.txt && mv ../files.txt test/files.txt 

然而,这依赖于它可能在某些情况下失败的相对路径。使用静态独立路径(例如,/tmp)来避免这种情况。你

+0

你的第一个答案的罚款:'grep的-rnw。 -e“text”> test/files.tmp && mv test/files.tmp test/files.txt'。我没有考虑时态文件。 – Llopis

+1

@Llopis如果您需要解析所有文件(即没有掩码),它将会失败。这就是我更新的原因 –

0

也可以试试这个:

cat <<< "$(grep -rnw . -e "text")" > test/files.txt