Portál AbcLinuxu, 3. listopadu 2025 12:32
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 | bash
Urč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.