Jak přidat řádek v bashi

webhope

Jak přidat řádek v bashi
« kdy: 26. 06. 2011, 20:47:37 »
Zdravím
Jak přidat řádek na začátek souboru v bashi?


Pinky

Re: Jak přidat řádek v bashi
« Odpověď #1 kdy: 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

webhope

Re: Jak přidat řádek v bashi
« Odpověď #2 kdy: 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)

webhope

Re: Jak přidat řádek v bashi
« Odpověď #3 kdy: 26. 06. 2011, 21:14:23 »
tedy vlastne

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

to by snad mohlo fungovat

webhope

Re: Jak přidat řádek v bashi
« Odpověď #4 kdy: 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


Pali

Re: Jak přidat řádek v bashi
« Odpověď #5 kdy: 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

webhope

Re: Jak přidat řádek v bashi
« Odpověď #6 kdy: 26. 06. 2011, 21:44:08 »
Diky tak to uz funguje

ja zkousel toto

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

a to nefungovalo

smajl

Re: Jak přidat řádek v bashi
« Odpověď #7 kdy: 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

webhope

Re: Jak přidat řádek v bashi
« Odpověď #8 kdy: 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)



deadmail

Re: Jak přidat řádek v bashi
« Odpověď #9 kdy: 27. 06. 2011, 08:45:55 »
Uvodzovky v uvodzovkach samozrejme mozu byt, len ich treba "escape"-ovat:

test="Ahoj \"Webhope"