szöveg beszúrása meglévő fájlba megadott helyre

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'"

Hozzászólások

Ha talalsz hozza valami jo lens-t akkor augeas.

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 "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. ---
---


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.