Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: martin.nohejl 10 Března 2013, 17:10:39
-
Zdravím všechny,
mám v txt souborech slova v několika řádcích, v každém řádku je několik slov oddělených mezerami. Potřeboval bych jednoduchý script pro bash, který mi převede tyto slova do jednoho sloupce nového texťáku.
Dále bych ještě potřeboval jednoduchý script pro spojení dvou txt souborů.
Předem děkuji
-
Pokud jsem správně pochopil zadání, tak třeba takto:
sed 's/ \+\|\t\+/\n/g' vstupní_soubor > výstupní_soubor
Nahrazuje libovolný počet mezer, nebo tabulátorů novým řádkem.
-
No jestli je tam těch řádků víc tak v pythonu
#!/usr/bin/python
import sys
l = []
for i in open(sys.argv[1]):
l.append(i.split())
for i in zip(*l):
print(" ".join(i))
Spojení dvou souborů
cat soubor1 soubor2 > výsledek
popř. vedle sebe
paste soubor1 soubor2 > výsledek
@GdH: regex pro white-space je \s
-
@GdH: regex pro white-space je \s
Jo, slyšel jsem o něm :)
Faktem je, že jsem vypustil druhou část zadání, ale sedu se dá předhodit víc souborů najednou a vyplivne je do jednoho. V použití Pythonu tu nevidím výhodu, ten tvůj ani nefunguje. Proč vyrábět další seznam, když to stačí sypat na výstup rovnou...
Toto žere i víc souborů na vstupu:
#!/usr/bin/python
import sys
for file in sys.argv[1:]:
with open(file) as f:
for i in f:
for j in i.split():
print j
-
Aha, on to chce do jednoho sloupce. Nechal jsem se zmást nadpisem.