grep给出错误

时间:2011-02-16 08:58:29

标签: linux shell grep

我试图从文件中提取no.s,所以我创建了一个脚本,但是grep给出了错误:grep:line太长了。谁能告诉我哪里错了。命令是:

echo $(cat filename|grep '\<[0-9]*\>')

提前致谢

1 个答案:

答案 0 :(得分:4)

grep是面向行的;它会打印匹配的行来输出。可能你的文件中有一条巨大的行,并且结果行无法按shell转换为字符串值,因为$( ... )需要。

首先,只需cat filename | grep '\<[0-9]*\>' > results,然后查看results文件中的内容。也许这就够了。

但如果您在一行中有多个数字并且想要全部提取它们,请使用-ogrep -o '\<[0-9]*\>'。这将仅打印匹配的部分,即使原始匹配位于同一行上,也会在新行上打印每个匹配。如果您还需要行号,请添加-n