hladam moznost ako nahradit v texte biele znaky novym riadkom, tak aby:
Ak je vedla seba viac bielych znakov, nahradi iba ten posledny novym riadkom
pre uplne pochopenie, uvediem zapis v php
$text = mb_eregi_replace("(\s)+\s", "\\1\n", $text);
\s = whitespace
ide mi vlastne o to, preniest urcite znaky z patternu do replace, tak ako som to urobil vo fcii vyssie pomocou \\1
prikazom tr sa take nieco neda, premyslal som ze pomocou awk, ale nenasiel som riesenie ani tu
Dakujem za pomoc
#!/bin/sh
cat "$1" | sed 's/[ *+ ]*/\n/g'
kde * predstavuje stlacenie medzery a + tabulatoru. Ako prvy parameter sa predpoklada vstupny subor
Je asi probelm s tym, ze nerozpozna znak \n ako novy riadok
este by som rad dodal, ze moj problem nie je nahradit medzery novym riadkom, to urobim aj pomocou tr
tr -s '[:space:]' '\n'
ja by som chcel nahradit iba poslednu medzeru, tzn. ak su vedla seba 3 medzery, nahradi iba tu tretiu za novy riadok
sed -e 's|[[:space:]]*[[:space:]]|\n|g' text.txt
Vam to funguje?
[samox86@lnx ~]$ echo "asdfsdgs dfxhgfdh dshgfdh sdrhfh" | sed -e 's|[[:space:]]*[[:space:]]|\n|g'
asdfsdgs
dfxhgfdh
dshgfdh
sdrhfh
[samox86@lnx ~]$
ano, funguje. inak by som to nepastoval :-)
cez awk by mozno islo riesenie, ach