ファイルの行の評価

ファイルの行の評価

次のソースファイルがあります。

server1 Mitigated Vulnerable Mitigated
server2 Vulnerable Vulnerable Mitigated
server3 Mitigated Vulnerable Vulnerable
server4 Mitigated Vulnerable Mitigated
server5 Mitigated Vulnerable Mitigated
server6 Vulnerable Vulnerable Vulnerable

各行の2番目と4番目の要素を比較し、次のロジックを使用して5番目の要素を追加したいと思います。

そのうちの1つ(2番目または4番目の要素)が脆弱性を示す場合、5番目の要素は脆弱性を示します(そして、次のように同じ行に印刷したいと思います:

server2 Vulnerable Vulnerable Mitigated Vulnerable

2つ(2番目と4番目)のみを緩和すると、5番目の要素が緩和されます。

3番目の要素は無視しても構いません。

ベストアンサー1

使用awk:

awk '$2 == "Vulnerable" || $4 == "Vulnerable" { $5 = "Vulnerable" } { print }' file

サンプルデータにこれを使用した結果:

server1 Mitigated Vulnerable Mitigated
server2 Vulnerable Vulnerable Mitigated Vulnerable
server3 Mitigated Vulnerable Vulnerable Vulnerable
server4 Mitigated Vulnerable Mitigated
server5 Mitigated Vulnerable Mitigated
server6 Vulnerable Vulnerable Vulnerable Vulnerable

コードawkは2番目と4番目のフィールドを調べ、そのフィールドの1つが文字列の場合は5番目のフィールドをVulnerable取得します。次に、すべてのフィールド(すべての入力行)を印刷します。

おすすめ記事