我试图从文件中提取no.s,所以我创建了一个脚本,但是grep给出了错误:grep:line太长了。谁能告诉我哪里错了。命令是:
echo $(cat filename|grep '\<[0-9]*\>')
提前致谢
答案 0 :(得分:4)
grep
是面向行的;它会打印匹配的行来输出。可能你的文件中有一条巨大的行,并且结果行无法按shell转换为字符串值,因为$(
... )
需要。
首先,只需cat filename | grep '\<[0-9]*\>' > results
,然后查看results
文件中的内容。也许这就够了。
但如果您在一行中有多个数字并且想要全部提取它们,请使用-o
:grep -o '\<[0-9]*\>'
。这将仅打印匹配的部分,即使原始匹配位于同一行上,也会在新行上打印每个匹配。如果您还需要行号,请添加-n
。