2016-03-06 57 views
0

我是shell脚本编程新手。我试图编写一个shell脚本,它将查找在shell和C中测量时间的命令和函数。 我想将结果呈现在三列中 - 函数的名称,man节的编号以及对功能。 我发现,我能找到的所有功能,并在方式显示出来我想用:shell脚本查找所有测量时间的函数

man -k time 

可能有人请给我一些指点?我怎样才能将结果限制为只在shell和C中测量时间的函数(而不是那些包含'time'的函数)?

+0

为什么你不能使用'man time'或'man -a time' – ritesht93

+0

'man'不会去寻找shell函数(它会发现shell尽管在某些系统上内置了插件)。但是,确定你正在处理的什么*时间相关函数并不是一个完全自动的过程。 –

+0

你为什么要这样做?这是你的真正目标还是你想解决一些其他问题? –

回答

0

查看unix.stackexchange.com https://unix.stackexchange.com/questions/3586/what-do-the-numbers-in-a-man-page-mean

正如你所看到的这个1的答案是“用户命令”,这些运行在一个壳 - 你的shell命令 第2和第3是C系统调用或C库功能

如果你看一下手册页部分有一个概要部分

这使可用的功能的C语言的总结。通常有手册页的其余部分 更多信息,但解析出来不会很明显

这样跑man -k time |egrep '\([23]\)',你会得到从第2节所有的C手册页的名称和3.管道是为AWK或切拿到第一场再喂到这一点的人(不包括AK选项),这将给予每个

内容要提取的概要部分这样的事情会是个不错

man time| sed -n '/SYNOPSIS/,/DESCRIPTION/p' 

也许与运行此egrep'([123])'可能是一个更好的主意,只是为所有人获取概要部分C和shell的手册页将提供一个很好的报告

根据目标的不同,一个“疑难杂症”是C库手册页部分有特殊名称。一个例子是openssl库的(3ssl)