Portál AbcLinuxu, 12. července 2025 18:07


Dotaz: sed -i 's/^^.... vložení dat na začátek souboru

5.11.2007 15:12 mmartin
sed -i 's/^^.... vložení dat na začátek souboru
Přečteno: 462×
Odpovědět | Admin
Ahoj. Potřebuji hromadně na začátek X souborů přidat @echo off. Zkoušel jsem

sed -i 's/^^/@echo off/' /cygdrive/d/temp/*_up.bat

ale nefacha. Napadá vás něco? Určitě to nějak jde :-)
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Jiří Poláček avatar 5.11.2007 15:17 Jiří Poláček | skóre: 47 | blog: naopak | Sivice
Rozbalit Rozbalit vše Re: sed -i 's/^^.... vložení dat na začátek souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
Co nějak takhle?

for I in `ls /cygdrive/d/temp/*_up.bat`; do sed … $I; done
Sudoku omrzelo? Zkuste bobblemaze! | Statistiky jsou jak bikiny. Napoví hodně, všechno ale neukážou.
5.11.2007 20:44 Ash | skóre: 53
Rozbalit Rozbalit vše Re: sed -i 's/^^.... vložení dat na začátek souboru
Ani přibližně. Tohle je hodně špatně.

Si zkuste:
mkdir test;
cd test;
touch "a b c";
for i in `ls *`; do echo "soubor $i"; done
for nemá šanci poznat, co je mezera v souboru a co je mezera mezi soubory...

O něco lepší je
for i in *; do echo "soubor $i"; done
což nasvědčuje tomu, že to ls bylo vlastně úplně zbytečné. (Hvězdičku v linuxu expanduje shell, nikoliv příkaz ls. A mezery si v takovém případě také sám escapuje.)

A pokud jde o sed, klidně zbaští i více parametrů, čili to jednoduché sed -i *.bat bylo vlastně docela dobře. Pokud by těch souborů bylo příliš mnoho, tak by bylo potřeba xargs.
5.11.2007 15:38 ams
Rozbalit Rozbalit vše Re: sed -i 's/^^.... vložení dat na začátek souboru
Odpovědět | | Sbalit | Link | Blokovat | Admin
sed -i '1i@echo off' /cygdrive/d/temp/*_up.bat
5.11.2007 15:59 mmartin
Rozbalit Rozbalit vše Re: sed -i 's/^^.... vložení dat na začátek souboru
supr, díky funguje

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.