Portál AbcLinuxu, 7. května 2025 19:52
Dobrý deň vám prajem. Mám dva súbory - napríklad template.gnuplot a uprava.dat Súbor template.gnuplot obsahuje nasledovné
set terminal png nocrop enhanced font "./template/arial.ttf,12" size 1024,768 f(x)=m*x+b fit f(x) "{Data}" via m,b set title "{Title}" font "./template/arial.ttf,20" set output "{Output}" set xlabel "{X-Label}" set ylabel "{Y-Label}" set grid set key box lt -1 lw 1 set pointsize 1.5 set border 0 set xtics nomirror set ytics nomirror plot "{Data}" using 1:2:xtic(3) title "{Line}" with lines lt 1 lw 2,"{Data}" using 1:2 notitle with points lt 3 lw 2 pt 4,f(x) title "{Trend}" lt 3 lw 2
Súbor uprava.dat obsahuje
{Data} = "input.csv" {Title} = "Názov grafu" {Output} = "output.png" {X-Label} = "Popis osi X" {Y-Label} = "Popis osi Y" {Line} = "Popis grafovej čiary" {Trend} = "Popis trendovej čiary"
A potrebujem template.gnuplot upraviť podľa uprava.dat. Dúfam, že ma chápete. Vopred veľmi pekne ďakujem za odpoveď.
cp template.gnuplot test.gnuplot sed -e "s/^\({.*}\)\s*=\s*\"\(.*\)\"\s*$/sed -i -e \"s,\1,\2,\" test.gnuplot/" uprava.dat | bashUrčitě někdo napíše i korektní, slušné, dlouhodobě udržitelné řešení.
Ďakujem veľmi pekne. Ale mám jeden problém. Takýto je výsledok posledného riadku:
plot "input.csv" using 1:2:xtic(3) title "Popis grafovej čiary" with lines lt 1 lw 2,"{Data}" using 1:2 notitle with points lt 3 lw 2 pt 4,f(x) title "Popis trendovej čiary" lt 3 lw 2
Čiže to druhé {Data} nebolo zmenené. A po druhé, čumím na to ako puk, pozerám do manuálu, ale stále to neviem pochopiť. Bol by si taký dobrý a vysvetlil mi krok po kroku, že čo ten príkaz robí? Veľmi pekne ďakujem za tvoju pomoc a ochotu.
..., čumím na to ako puk, pozerám do manuálu, ale stále to neviem pochopiť.To bola presne tá časť vety o smažení sa v pekle.
pravděpodobně bude stačit vhodně přidatČiže to druhé {Data} nebolo zmenené.
g
, tipuji sem \"s,\1,\2,g\"
podstatou je, že nahradíA po druhé, čumím na to ako puk, pozerám do manuálu, ale stále to neviem pochopiť.
{Data} = "input.csv"
za s/{Data}/input.csv/
atd., a to pak použije na druhý soubor
autor to třeba vysvětlí podrobněji a přesněji
sed -f
vykonat.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.