首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将此bash命令行转换为awk语句?

如何将此bash命令行转换为awk语句?
EN

Stack Overflow用户
提问于 2009-10-02 15:15:20
回答 2查看 695关注 0票数 2

我已经创建了一个awk脚本,并像这样使用它:

代码语言:javascript
复制
# grep -E "[PM][IP][DO][:S]" file.txt | awk-script

如何修改awk脚本以包含grep命令所做的工作(该命令正在搜索"PID:“或"MPOS"?

awk-script是:

代码语言:javascript
复制
#!/usr/bin/awk -f
/Sleeve/  {
        printf("%8d, %7d, %7.2f, %7.2f, %7.2f\n", $5, $6, $7, $30, $31)
}
/Ambient/ {
        printf("%8d, %7d,,,, %7.2f, %7.2f\n", $5, $6, $7, $8)
}
/MPOS:/ {
        printf("%8d, %7d,,,,,, %5d, %5d\n", $4, $5, $2, $3)
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-10-02 15:33:16

如果你只想搜索PID:MPOS,你可以说如果你在行中找不到它们,你想跳过以下规则:

代码语言:javascript
复制
#!/usr/bin/awk -f

!/PID:|MPOS/ { 
        next 
}

/Sleeve/  {
        printf("%8d, %7d, %7.2f, %7.2f, %7.2f\n", $5, $6, $7, $30, $31)
}
/Ambient/ {
        printf("%8d, %7d,,,, %7.2f, %7.2f\n", $5, $6, $7, $8)
}
/MPOS:/ {
        printf("%8d, %7d,,,,,, %5d, %5d\n", $4, $5, $2, $3)
}
票数 2
EN

Stack Overflow用户

发布于 2009-10-02 16:55:15

我在busybox中尝试了litb的 answer (在Bash的Ubuntu上),它对我很有效。为了进行测试,我使用了以下示例来匹配到busybox的符号链接的位置

代码语言:javascript
复制
#!/home/username/busybox/awk -f

并使用以下命令运行测试:

代码语言:javascript
复制
./awk-script file.txt

我还在busybox sh (使用PATH=/home/username/busybox:$PATH,尽管这不是必需的)下运行了测试,它在那里工作。

当你说“我还有悲伤”的时候那是什么意思?您是否收到错误消息或不正确的结果?

顺便说一句,除非您要搜索字符的所有排列,否则可以像这样执行grep:

代码语言:javascript
复制
grep -E "(PID:|MPOS)" file.txt
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1510175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档