文書の内容:
RANDOM TEXT num1=400 num2=15 RANDOM TEXT
RANDOM TEXT num1=300 num2=10 RANDOM TEXT
RANDOM TEXT num1=200 num2=5 RANDOM TEXT
次のように、各行の各num2に対して5を減算したいと思います。
RANDOM TEXT num1=400 num2=10 RANDOM TEXT
RANDOM TEXT num1=300 num2=5 RANDOM TEXT
RANDOM TEXT num1=200 num2=0 RANDOM TEXT
純粋なbashが好まれますが、他のGNUツールがより良い作業をしている場合は大きな問題ではありません。
ベストアンサー1
使用awk
:
awk '{ for (i=1;i<=NF;i++) { if ($i ~ /num2=/) {sub(/num2=/, "", $i); $i="num2="$i-5; print} } }' file
次に、各行の各列を繰り返しながら、含まれている列を見つけますnum2=
。列を見つけたら、次の操作を行います。
num2=
削除 -sub(/num2=/, "", $i)
- 列を次のようにオーバーライドします
num2={oldnum-5}
。$i="num2="$i-5
- この行を印刷してください -
print