有什么方法可以改变使用 grep 的分隔符吗?
我认为,默认情况下,grep 用作\n
分隔符。
答案1
在 grep 之前将零分隔符 ('@') 替换为换行符 (\n):
cat 文件 | tr'\00''\n'| grep“搜索字符串”
答案2
如果你只关心输出,tr
可能对你有用:
che@nok ~ $ grep cpu /proc/cpuinfo | tr '\n' ';'
cpu family : 6;cpu MHz : 800.000;cpu cores : 2;cpuid level : 10;cpu family : 6;cpu MHz : 800.000;cpu cores : 2;cpuid level : 10;
答案3
agrep
来自亚利桑那大学允许您设置分隔符。它不是 grep 的替代品;它使用不同的算法(近似 grep,可以匹配错误)并且具有不同的模式语法。但它是一个方便的工具。
不幸的是,我认为由于许可问题,有多个类似的项目被称为agrep
,但它们并不完全兼容。但我认为所有版本都允许您设置分隔符。
答案4
这个怎么样?有用吗?
grep 文件“搜索字符串”|awk'BEGIN{RS="\n";ORS="@"}{print}'
将“@”设置为适合您需要的任何值。