bash scripttel szeretném megoldani hogy egy már meglévő szöveges fájl megadott helyére beszúrhassak sorokat.
Ilyet még nem csináltam és nem is tudom hol nézzek utána.
pld. az /etc/udev/rules.d/40-usb_modeswitch.rules fájl KB. közepére be kéne illesztenem két sort.
Azt hogy hová, azt az idProduct számok mutatják meg.
# ZTE MF691 (T-Mobile Rocket 2.0)
ATTR{idVendor}=="19d2", ATTR{idProduct}=="1201", RUN+="usb_modeswitch '%b/%k'"
# ZTE MF195 T-Mobile
ATTR{idVendor}=="19d2", ATTR{idProduct}=="1210", RUN+="usb_modeswitch '%b/%k'"
# ZTE MF192+
ATTR{idVendor}=="19d2", ATTR{idProduct}=="1216", RUN+="usb_modeswitch '%b/%k'"
- 3890 megtekintés
Hozzászólások
Ha talalsz hozza valami jo lens-t akkor augeas.
- A hozzászóláshoz be kell jelentkezni
A kontextus fix? Úgy értem, nem csak a számok, hanem betűről betűre a környező sorok, pl. alapból 3 sor. Ha igen, akkor fogod az eredeti config-ot, meg a szerkesztettet, diff -u előállítja a diff-et, és patch (-p1) rá tudja applikálni az eredetire.
- A hozzászóláshoz be kell jelentkezni
Ez jól hangzik. De kérdés hogy általában alapból fent vannak-e ezek a diff, patch progik a gépen?
- A hozzászóláshoz be kell jelentkezni
Szerintem igen. Debian alatt a diffutils és a patch csomagokban vannak és nem rémlik, hogy ezeket valaha is külön kellett volna telepítenem az alaptelepítés után.
- A hozzászóláshoz be kell jelentkezni
Én sed-del állnék neki, valahogy így:
http://stackoverflow.com/questions/15559359/insert-line-after-first-mat…
- A hozzászóláshoz be kell jelentkezni
A "bar" stringet tartalmazó sor szerintem itt kimaradt. Mi van akkor, ha a "foo" striget tartalmazó sorból 2 van, hogy dönti el a sed, hogy hova illesszen?
visszatérve a kiinduló kérdéshez, ha ezzel a
# ZTE MF691 (T-Mobile Rocket 2.0)
ATTR{idVendor}=="19d2", ATTR{idProduct}=="1201", RUN+="usb_modeswitch '%b/%k'"
sorból véletlenül 2 van, akkor 2 illesztés fog bekövetkezni.
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
Így nem jó?
grep -m1 -B10000 pattern file | head -n-1 > new
echo text to insert >> new
grep -m1 -A10000 pattern file >> new
- A hozzászóláshoz be kell jelentkezni
subs.
- A hozzászóláshoz be kell jelentkezni
awk -vMAXINSERT=1 '/=="eztazid-tkeresed"/ && insert<MAXINSERT { print; print "ezt akarod beszurni"; next}; {print}' /etc/udev/rules.d/40-usb_modeswitch.rules
Az elejére/végére a kötelező mentés, tempfájlba írás, csere.
- A hozzászóláshoz be kell jelentkezni