特定の行を検索してCSVファイルに書き込む方法をお手伝いできますか? BashとPython3を介して出力を処理する方法は?
コメント:
「objectID」は、見つかった各サーバーを表します。
サーバーごとに「パスインスタンス」グループが複数ある場合があります。
少しの説明をお願いします。
コマンド出力の例:
猫/tmp/output.log
objectID=HSDOMAIN.HM700.212040.9.9
portID=9
portName=CL3-C
domainID=9
hostMode=Windows Extension
hostModeOption=7;40;73
displayName=CL3-C-9
domainType=0
nickname=CLSRV129
resourcePartitionUnitID=0
List of 10 Path elements:
An instance of Path
objectID=PATH.HM700.212040.9.9.12573
devNum=12,573
displayDevNum=00:31:1D
portID=9
portName=CL3-C
domainID=9
scsiID=15
LUN=3
wwnSecurityValidity=true
An instance of Path
objectID=PATH.HM700.212040.9.9.4413
devNum=4,413
displayDevNum=00:11:3D
portID=9
portName=CL3-C
domainID=9
scsiID=15
LUN=8
wwnSecurityValidity=true
CSVファイルの概要:
猫/tmp/output.csv
212040;CLSRV129;CL3-C;31:1D
212040;CLSRV129;CL3-C;11:3D
答え1
sedとMillerを使用してください(https://github.com/johnkerl/miller)と実行
sed -r 's/(.+object.+)/\n\1/g' input_01.csv | \
mlr --x2c --ips "=" clean-whitespace \
then cut -o -f objectID,nickname,portName,displayDevNum \
then unsparsify \
then put -S '$objectID=regextract_or_else($objectID,"[0-9]{6}","")' \
then fill-down -f nickname \
then filter -x -S '$displayDevNum==""'
あなたはやる
objectID,nickname,portName,displayDevNum
212040,CLSRV129,CL3-C,00:31:1D
212040,CLSRV129,CL3-C,00:11:3D