3

コンマで区切られた 13 個のフィールドを持つ文字列からフィールドを置き換えようとしています。置換したい位置と、その位置に与えたい新しい値の両方を別々の変数に持っています。バッシュの使用。

#Original string:
THR=’0,0,0,0,0,0,0,0,0,0,0,0,0’
#Position I want to manipulate:
pos=’3’
#Value I want to write in the field "pos"
val=’8.73’

# What I'm trying to do:
echo $THR | awk -v chawk=$pos -v thrawk=$val -F',' '{ print; $chawk=$thrawk; print }'

THR は '0,0,8.73,0,0,0,0,0,0,0,0,0,0' である必要があります

乾杯

4

1 に答える 1

2

$あなたはそれをほとんど持っていました、の前を取り除きます$thrawk

awk -v chawk=$pos -v thrawk=$val -F',' '{ print; $chawk=thrawk; print }' OFS=\. <<< $THR
0,0,0,0,0,0,0,0,0,0,0,0,0
0.0.8.73.0.0.0.0.0.0.0.0.0.0

変数THRに戻すには

THR=0,0,0,0,0,0,0,0,0,0,0,0,0
THR=$(awk -v chawk=$pos -v thrawk=$val -F',' '{ $chawk=thrawk; print }' OFS=\. <<< $THR)
echo $THR
0.0.8.73.0.0.0.0.0.0.0.0.0.0
于 2013-10-25T05:33:46.563 に答える