我需要计算匹配配置文件条目的行数,最好使用“grep”;
我有一个配置文件,其中包含各种设备的条目,每个条目由空行分隔。我需要在文件中搜索给定设备类型的所有实例,并计算出现后的非空白行数,在第一个空白处停止。
例如:
服务器=foo
配置行 1
配置行2
配置第 3 行服务器=栏
配置行 1
配置行2服务器=foo
配置行 1
如果我想知道与服务器“foo”相关联的“配置行”总数,我应该得到四行。你能帮忙吗?
我使用的是 AIX 5.3。它没有 pcregrep。 :( 我只能使用 Grep、sed 和 awk。
I have a configuration file that has entries for various devices, with each entry separated by a blank line. I need to search the file for all instances of a given device type, and count the number of non-blank lines following the occurrence, stopping at the first blank.
For example:
Server=foo
config line 1
config line 2
config line 3Server=bar
config line 1
config line 2Server=foo
config line 1
If I wanted to know how many total "config lines" were associated with server "foo", I should get four. Can you please help?
I am on AIX 5.3. It doesn't have pcregrep. :( Grep, sed, and awk are all I have access to.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这个简单的 awk 脚本将告诉您需要的信息:
您可能需要调整 /usr/bin/awk 路径以匹配您的路径。如果您将此代码放在
counter
脚本中,它会像这样调用它:它将为您的示例配置输出以下内容:
如果您需要在行开头删除 Server= ,您可以通过管道通过 sed 来实现:
This simple awk script will tell you information you need:
You may need to adjust /usr/bin/awk path to match yours. If you place this code in
counter
script, it and invoke it like this:It will output following for your example config:
If you need to get rid of Server= at the beginning of lines, you can pipe it through sed: