簡體   English   中英

如何管道進入awk腳本

[英]how to pipe into awk script

我有這個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, $1, $2, $3, $4, $5, $6, $7} 
        if ($0 == "") {inner = 0}
    }
    close(cmd)
} 

我會將你的awk腳本更改為shell腳本:

#!/bin/sh
sudo lspci -vvv | /usr/bin/awk '
  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}
'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM