Mám adresář plný souborů XML, které vypadají takto, u kterých chci změnit hodnotu čísla prvku „offset“ z 1 na nějaké jiné číslo
$ cat my.xml
<offset xmlns="">1</offset>
Napsal jsem různé kombinace tohoto příkazu sed, ale nic, co jsem zkoušel, neběží bez chyby. Jsem si docela jistý, že musím uniknout některým postavám, ale ty, které jsem zkoušel, vždy končí chybami („neočekávaný token“, „neznámá možnost“ atd.). Zkoušel jsem také bez příznaku -e, protože to opravdu není výraz.
sed -i -e s/<offset xmlns="">1</offset>/<offset xmlns="">99</offset>/ *.xml
Ocenili bychom jakoukoli pomoc.
Přijatá odpověď:
Zkuste toto,
$ sed 's~<offset xmlns="">1~<offset xmlns="">99~g' file
<offset xmlns="">99</offset>
Pokud vstup obsahuje lomítka, použijte jiný oddělovač sed.
Dočasně pozastavit Bash_history na daném shellu?
Jak provést ekvivalent `head -z`, když nemám k dispozici volbu `-z`?