У меня возникла следующая проблема. У меня есть файл Fe.in5.1
5000000 0 0
0 5000000 0
0 0 5000000
Хотелось бы заменить элемент (1.1 это 5000000), (1,2 это 0 и т.д.), (2.1). (2.2), (3.1), (3.2) на значения xn1="0" (1.1), yn1="5000000"(1.2 и т.д), xn2="5000000", yn2="5000000", xn3="-5000000", yn3="5000000", соотвественно.
Для этого пишу следующее.
#!/bin/bash
NZ="2"
i="1"
compaund="Fe"
while [ $i -lt $NZ ]
do
x1=`head -n 1 $compaund.in5.$i | tail -n 1 | gawk '{printf "%10d ",$1}'`
y1=`head -n 1 $compaund.in5.$i |tail -n 1| gawk '{printf "%10d ",$2}'`
x2=`head -n 2 $compaund.in5.$i |tail -n 1| gawk '{printf "%10d ",$1}'`
y2=`head -n 2 $compaund.in5.$i |tail -n 1| gawk '{printf "%10d ",$2}'`
x3=`head -n 3 $compaund.in5.$i |tail -n 1| gawk '{printf "%10d ",$1}'`
y3=`head -n 3 $compaund.in5.$i |tail -n 1| gawk '{printf "%10d ",$2}'`
xn1="0"
yn1="5000000"
xn2="5000000"
yn2="5000000"
xn3="-5000000"
yn3="5000000"
cp $compaund.in5.$i .tmp1
sed "1,1s/$x1/$xn1/" .tmp1 | sed "1,2s/$y1/$yn1/" > .tmp2
cp .tmp2 .tmp1
sed "2,1s/$x2/$xn2/" .tmp1 | sed "2,2s/$y2/$yn2/" > .tmp2
cp .tmp2 .tmp1
sed "3,3s/$x3/$xn3/" .tmp1 | sed "1,2s/$y3/$yn3/" > .tmp2
cp .tmp2 .tmp1
cp .tmp1 $compaund.in5.$i
i=$[$i+1]
done
Но sed делает не то что требуется