Bash - 検索と置換 - CSVファイルの列のマージ

Bash - 検索と置換 - CSVファイルの列のマージ

jqコマンドの出力を接続する際に問題があります。jqを使用してJSONファイルを解析してCSVに変換する - 2つの列を1つにマージする

それで、CSVファイルを検索して複数の戦略で列をマージすることが可能かどうか疑問に思います。 CSVファイルは次のとおりです。

"ADFS-Administrators","Administrator-Access","arn:aws:iam::279052847476:saml-provider/CompanyADFS"
"ADFS-amtest-ro","pol-amtest-ro","arn:aws:iam::279052847476:saml-provider/CompanyADFS"
"adfs-host-role","pol-amtest-ro",
"aws-elasticbeanstalk-ec2-role","AWSElasticBeanstalkWebTier","AWSElasticBeanstalkMulticontainerDocker","AWSElasticBeanstalkWorkerTier",
"aws-elasticbeanstalk-service-role","AWSElasticBeanstalkEnhancedHealth","AWSElasticBeanstalkService",
"AWSAccCorpAdmin","AdministratorAccess","arn:aws:iam::279052847476:saml-provider/LastPass"
"lambda_api_gateway_twilio_processor","AWSLambdaBasicExecutionRole-f47a6b57-b716-4740-b2c6-a02fa6480153","AWSLambdaSNSPublishPolicyExecutionRole-d31a9f16-80e7-47c9-868a-f162396cccf6"

複数のポリシーを含む列を1つにまとめ(カンマを-に置き換え)、各役割の最初と最後(最初の列)の間の文字列から引用符を削除するにはどうすればよいですか"aws-elasticbeanstalk-ec2-role","AWSElasticBeanstalkWebTier","AWSElasticBeanstalkMulticontainerDocker","AWSElasticBeanstalkWorkerTier"

"aws-elasticbeanstalk-ec2-role","AWSElasticBeanstalkWebTier-AWSElasticBeanstalkMulticontainerDocker-AWSElasticBeanstalkWorkerTier"

~のため

"aws-elasticbeanstalk-service-role","AWSElasticBeanstalkEnhancedHealth","AWSElasticBeanstalkService",

"aws-elasticbeanstalk-service-role","AWSElasticBeanstalkEnhancedHealth-AWSElasticBeanstalkService"

Lambda_api_gatewayと同じ

すべての行の共通点は、arn:aws:iam文字列が欠落していることです。 arn:aws文字列がなく、複数のポリシーを持つ行をどのように検出しますか?

ベストアンサー1

理解するためにテキストエディタを使用する必要はありません。同じ列にある複数の値は、次のように表示されます。--

jq -rc '.RoleDetailList | map(select((.AssumeRolePolicyDocument.Statement | length > 0) and (.AssumeRolePolicyDocument.Statement[].Principal.Federated) or (.AttachedManagedPolicies | length >0) or (.RolePolicyList | length > 0)) )[]  | [.RoleName,([.RolePolicyList[].PolicyName,([.AttachedManagedPolicies[].PolicyName] | join("--"))] | join(" ")),(.AssumeRolePolicyDocument.Statement[] | .Principal.Federated)] | @csv' output.json

おすすめ記事