加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 如何管道进入awk脚本

发布时间:2020-12-15 21:07:38 所属栏目:安全 来源:网络整理
导读:我有这个awk脚本: #!/usr/bin/awk -fBEGIN {IGNORECASE=1} /nVidia/ {inner=1;pci=$1} /(corr|fatal)err-/ {if (inner) print pci,$1,$2,$3,$4,$5,$6,$7} $0=="" {inner=0} 是否有一个语法总是管道sudo lspci -vvv到这个脚本?我每次运行脚本时都要输入sud
我有这个awk脚本:

#!/usr/bin/awk -f
BEGIN {IGNORECASE=1} 
/nVidia/ {inner=1;pci=$1} 
/(corr|fatal)err-/ {if (inner) print pci,$1,$2,$3,$4,$5,$6,$7} 
$0=="" {inner=0}

是否有一个语法总是管道sudo lspci -vvv到这个脚本?我每次运行脚本时都要输入sudo lspci -vvv | ./checkpci.我知道我可以创建第二个脚本来启动第一个脚本,但我认为这很麻烦,并且想知道这样做的正确方法.

顺便说一句,我的显卡崩溃时遇到了一些问题,并且在某些设备上看到了UncorrErr标志,是否有人参考了这意味着什么或如何进一步排除故障?现在我只是定期运行这个脚本来查看错误何时出现在lspci中以查看是否存在时间关联.

解决方法

这应该适合你:

#!/usr/bin/awk -f
BEGIN {
    IGNORECASE = 1
    cmd = "sudo lspci -vvv"
    while ((cmd | getline) > 0) {
        if ($0 ~ /nVidia/) {inner = 1; pci = $1} 
        if ($0 ~ /(corr|fatal)err-/) {if (inner) print pci,$7} 
        if ($0 == "") {inner = 0}
    }
    close(cmd)
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读