【发布时间】:2021-11-11 16:53:47
【问题描述】:
confirmerror(){
trimline|awk -F ':' '{if($5 != "") print}'
}
result(){
deviceName=$($1|awk '{print $4}')
processId=$($1|awk '{print $5}'|awk -F '[^0-9]*' '{print $2}')
processName=$($1|awk '{print $5}')
description=$($1|awk '{print $6,$7,$8,$9}')
echo $deviceName
echo $processId
echo $processName
echo $description
}
confirmerror | while read line; do result $line; done
函数confirmerror的输出:
May 13 00:01:58 BBAOMACBOOKAIR2 com.apple.xpc.launchd[1] (com.apple.mdworker.bundles[12513]): Could not find uid associated with service: 0: Undefined error: 0 501
May 13 00:01:58 BBAOMACBOOKAIR2 com.apple.xpc.launchd[1] (com.apple.mdworker.bundles[12513]): Service exited with abnormal code: 78
May 13 00:02:12 BBAOMACBOOKAIR2 com.apple.xpc.launchd[1] (com.apple.xpc.launchd.domain.pid.mdmclient.12523): Failed to bootstrap path: path = /usr/libexec/mdmclient, error = 108: Invalid path
需要读取函数x的每一行,处理后得到对应的格式输出,上面是我的尝试,但是失败了,所以来求教。
我想要什么:
BBAOMACBOOKAIR2
1
com.apple.xpc.launchd[1]
(com.apple.mdworker.bundles[12513]): Could not find uid associated with service: 0: Undefined error: 0 501
BBAOMACBOOKAIR2
1
com.apple.xpc.launchd[1]
(com.apple.mdworker.bundles[12513]): Service exited with abnormal code: 78
BBAOMACBOOKAIR2
1
com.apple.xpc.launchd[1]
(com.apple.xpc.launchd.domain.pid.mdmclient.12523): Failed to bootstrap path: path = /usr/libexec/mdmclient, error = 108: Invalid path
【问题讨论】:
-
while read line; do confirmerror $(result $line); done -
@DanielHornik 不工作
-
需要以函数的形式完成,而不是单独的awk文件。
-
不要使用 shell 读取循环来操作文本,请参阅 why-is-using-a-shell-loop-to-process-text-considered-bad-practice。此外,您的脚本中有多个 shell 错误,请复制/粘贴该脚本以及您编写的任何其他 shell 脚本,直到您将基本原理弄清楚到 shellcheck.net 并修复它告诉您的基本问题。
-
您的问题中没有示例输入,并且您正在调用您未定义的名为
trimline的工具或函数,因此请了解我们如何帮助您解决问题。正确的解决方案不是多次调用 awk 的 shell 脚本。再试一次,用awk标记你的问题。