【发布时间】:2015-01-08 09:44:11
【问题描述】:
我有一个名为 threads.log 的文件,这是该文件的示例
Threads: 40
Threads: 1
Threads: 1
Threads: 3
Threads: 5
Threads: 5
Threads: 1
Threads: 5
// rest
我在终端中这样做:
echo $(cat threads.log | grep -o [0-9]*)
这是输出:1 1 1 1 1 1 1,而不是预期的数字。为什么会这样?
【问题讨论】:
-
您的当前目录中是否有一个名为
1的文件? -
不确定,但您的代码对我有用。尝试删除 -o 以查看 1 背后的内容
-
@ExcelledProducts 运行
touch 1,然后再次尝试该命令,看看会得到什么。 -
我得到了你的输出。
1 1 1 -
@ExcelledProducts 完全正确。这就是 shell globbing 为你工作。比较
echo [0-9]*和echo '[0-9]*',如果您需要,可以更清楚地了解那里发生的情况。
标签: linux bash shell ubuntu grep