[英]How to use awk to split files by separator and pipe into another script?
[英]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.