Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: webhope 26. 06. 2011, 20:47:37

Název: Jak přidat řádek v bashi
Přispěvatel: webhope 26. 06. 2011, 20:47:37
Zdravím
Jak přidat řádek na začátek souboru v bashi?
Název: Re: Jak přidat řádek v bashi
Přispěvatel: Pinky 26. 06. 2011, 21:05:02
Nejjednodušší je vytvořit nový soubor, do něj nejdřív vložit požadovaný řadek a pak přdat již existující obsah, možná byš šel udělat nějaký trik s pomocí sed.

echo "PRVNI NOVA RADKA >soubo.tmp
cat soubor_puvodni >>soubo.tmp
Název: Re: Jak přidat řádek v bashi
Přispěvatel: webhope 26. 06. 2011, 21:11:20
No, kdyby se dala sečíst proměnná $filename a výstup z toho catu, tak bych nemusel vytvářet soubor navíc.

Už jsem dlouho neprogramoval ale zkusím něco z pameti

data=$(cat original.txt)+$filename
a ted si nevypominam jak ulozit ty data (prepsat original.txt)
Název: Re: Jak přidat řádek v bashi
Přispěvatel: webhope 26. 06. 2011, 21:14:23
tedy vlastne

data=$filename+$(cat original.txt)
echo $data>original.txt

to by snad mohlo fungovat
Název: Re: Jak přidat řádek v bashi
Přispěvatel: webhope 26. 06. 2011, 21:23:52
Uz to skoro mam ale jak tam zadat zalomeni radku?

Kód: [Vybrat]
data="newfilename"\n$(cat changes.txt)
echo $data
Název: Re: Jak přidat řádek v bashi
Přispěvatel: Pali 26. 06. 2011, 21:32:22
Bud takto:
Kód: [Vybrat]
data="newfilename
$(cat changes.txt)"
echo "$data"

alebo takto:
Kód: [Vybrat]
data="newfilename\n$(cat changes.txt)"
echo -e $data

Nie som si vsak isty ci je parameter -e pre echo v norme
Název: Re: Jak přidat řádek v bashi
Přispěvatel: webhope 26. 06. 2011, 21:44:08
Diky tak to uz funguje

ja zkousel toto

echo -e newfilename\n$(cat $filename);

a to nefungovalo
Název: Re: Jak přidat řádek v bashi
Přispěvatel: smajl 26. 06. 2011, 22:07:03
Zdravím
Jak přidat řádek na začátek souboru v bashi?
sed -ie '1i\novy radek' soubor
pripadne ak nemate zaujem zmenit obsah suboru, iba pridat riadok a vypisat povodny:
sed -e '1i\novy radek' soubor
Název: Re: Jak přidat řádek v bashi
Přispěvatel: webhope 26. 06. 2011, 22:23:18
Ještě ten první kod ma chybu:

Kód: [Vybrat]
filename="./$disk_dir/$subdir/changes.txt";
echo -e "$target\n$(cat $filename)";  # zapsat informaci do souboru

Vystup:
cat: ./: je adresářem
cat: ATA/Win-sda1-drivers/changes.txt: Adresář nebo soubor neexistuje
sda1_06_2011-PS_akce+FF_profile_a_pluginy+Thunderbird_profil+ikony_na_plose.dd


Tam za catem by mely byt uvozovky, ale uvozovky uvnit uvozovek (radek 2) to nejde. Jak to doresit?

(Uvedena cesta musi byt spravna, jelikoz jsem prave pouzil cestu
filename="./$disk_dir/$subdir/$target"
jako cil pro prikaz dd)


Název: Re: Jak přidat řádek v bashi
Přispěvatel: deadmail 27. 06. 2011, 08:45:55
Uvodzovky v uvodzovkach samozrejme mozu byt, len ich treba "escape"-ovat:

test="Ahoj \"Webhope"