[英]how to combine multiple awk commands using different options
在使用不同選項加入以下 3 個 awk 命令時,我需要一些幫助。
輸入文本文件格式:/hosting/cbj/shared/master/jobs/TAIS/jobs/tais_aem_build/branches/feature-Dev/builds/214/log:[2022-06-23T07:23:56.117Z] ch.qos。 logback.classic.log4j 0 1.2.3 com.baml.tais.tais_aem_build:jar:6.4.0
我需要提取第 6、8、13(日期時間戳)、第 13(1.2.3 版本)並將它們打印到帶有標題的 csv 文件中。 樣本輸出:
SPK | 回購協議 | log4j 版本 | 時間戳 |
---|---|---|---|
泰斯 | tais_aem_build | 1.2.3 | 2022-06-23T07:23:56.117Z |
使用多個分隔符
awk -F'/|\\[|] ?| ' '
BEGIN{
OFS=";"
print "SPK","REPO","log4j-version","Timestamp"
}
{
print $7,$9,$18,$15
}
' file
SPK;REPO;log4j-version;Timestamp
TAIS;tais_aem_build;1.2.3;2022-06-23T07:23:56.117Z
或將所有分隔符更改為/
awk -F/ '
BEGIN{
OFS=";"
print "SPK","REPO","log4j-version","Timestamp"
}
{
gsub(/[][ ]/, "/");
gsub("//", "/");
print $7,$9,$18,$15
}
' file
SPK;REPO;log4j-version;Timestamp
TAIS;tais_aem_build;1.2.3;2022-06-23T07:23:56.117Z
或使用拆分
awk '
BEGIN{
OFS=";"
print "SPK","REPO","log4j-version","Timestamp"
}
{
n=split($1,a,"/")
print a[7],a[9], $4, gensub(/.*\[(.*)\].*/,"\\1",1,a[n])
}
' file
SPK;REPO;log4j-version;Timestamp
TAIS;tais_aem_build;1.2.3;2022-06-23T07:23:56.117Z
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.