shell - 如何传递参数并以所需格式输出
问题描述
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
解决方案
我认为,对于这项工作来说太复杂了。你有 awk,所以用它来完成工作。
文件:error.awk
{
gsub(/^ */, "", $0)
gsub(/ *$/, "", $0)
FS = ":"
if ($5 == "") {
next
}
}
{
FS = " "
deviceName = $4
processId = $5
gsub(/^.*\[/, "", processId)
gsub(/\].*$/, "", processId)
processName = $5
$1 = $2 = $3 = $4 = $5 = ""
gsub(/^ */, "", $0)
description = $0
print deviceName
print processId
print processName
print description
}
并使用它:
output_command_or_cat_filename | awk -f error.awk
输出:
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
推荐阅读
- amazon-web-services - 是否可以像使用 ADFS 一样在 AzureAD 中进行自定义声明转换?
- sql - 获取以下输出(Oracle 11g)的选择查询是什么?
- reactjs - 如何在反应中显示数据
- selenium - 尝试使用 pagefactory 处理 POM 中的 webtable 但抛出错误
- angular - 如何加快用户界面
- python - 如何将 pandas.series.groupby() 表从计数转换为百分比频率?
- gnuplot - gnuplot 在绘图中显示实际数据(时间)
- java - lambda 表达式中的错误返回类型:无法转换为布尔值
- drupal-8 - 如何在不使用 drupal commerce 2.x 中的规则的情况下重定向结帐完整页面
- python - 如何通过将函数的输出作为输入传递给函数来调用python函数