每个块以' COL ID'开头。在输入数据中。 我需要打印' COL ID'和JOB_subid如果有。正如您在输入数据中看到的那样,' COLID = 2'有一个job_subid(1 /表名左边)但是' COLID = 3'或者' COLID = 4'没有。 对于COLID = 3/4,我想打印'no_data'因为它没有任何job_subid。 我该如何处理这些数据?
''
if($_POST['input'] != ' ' && !empty($_POST['input'])){run query}
/COL ID/ {JOBID=$4;}
/^[0-9]/ {
JOB_SUBID=$1;
printf "%s#%s",JOBID,JOB_SUBID;
printf "\n";
}
END {
if (JOB_SUBID="") then
JOB_SUBID="no_data";
printf "%s#%s",JOBID,JOB_SUBID;
printf "\n";
end if;
}
COL ID : 2
PID : 26788
ID TABLE
------ ------------------------------
1 "SCOTT"."PRINCE01"
COL ID : 3
PID : 26788
COL ID : 4
PID : 26788
答案 0 :(得分:1)
您可以通过
执行此操作%{shares: [%Cs{name: "Junaid2"}, %Cs{name: "Junaid1"}]}
简要说明,
$ awk -v RS='COL ID' 'NR>1{print $2"#"($10==""?"no data":$10)}' file
2#1
3#no data
4#no data
COL ID
:省略第一条记录NR>1
子ID,如果没有则打印“无数据”。答案 1 :(得分:1)
如果您想保持与列出的相同的样式,则只需添加此声明。
/^[^0-9]/ {JOB_SUBID = ""}
并摆脱END
块
答案 2 :(得分:1)
awk 解决方案:
scripts: {
"myScript": "concurrently \"npm run myScript1\" \"npm run myScript2\"",
"myScript1": "cross-env NODE_ENV=development webpack-dev-server",
"myScript2": "nodemon ./server.js",
}
输出:
awk '/COL ID/{
if(colid) { sid=(subid)? subid:"no_data"; print colid"#"sid; subid="" } colid=$4
}
/^[0-9]+/{ subid=$1 }END{ if(colid) print colid"#"sid }' inputfile
答案 3 :(得分:0)
$ cat tst.awk
/COL ID/ { prt(); jobId = $NF }
/^[0-9]/ { subId = $1 }
END { prt() }
function prt() { if (NR>1) print jobId "#" subId; subId="no_data" }
$ awk -f tst.awk file
2#1
3#no_data
4#no_data