Bashスクリプトで次の変数を使用しています - val1、val2
val1は、オペレーティングシステムLinuxに存在する必要があるすべてのディスクを表します。
val2 はオペレーティングシステム Linux の現在のディスクを表します。
私の目標は、「$ val1」変数から「$ val2」ディスクを削除することです。
val1="sdb sdc sdd sde sdf sdg sdh sdi sdj sdk"
val2="sdb sdc sdf sdd sde sdg"
予想される結果:
val3=sdh sdi sdj sdk
そして、次のようにval3の結果を設定します。
ベストアンサー1
そしてsed
置換:
val3=$(sed -E 's/\<('"$(tr ' ' '|' <<<"$val2")"')\> *//g' <<<"$val1")
echo "$val3"
sdh sdi sdj sdk
$(tr ' ' '|' <<<"$val2")
- 正規表現交代グループを模倣して、sdb|sdc|sdf|sdd|sde|sdg
全体の構造は次のようになります。\<(sdb|sdc|sdf|sdd|sde|sdg)\>
\<
と\>
- 単語の境界。