Hahó!
Adott a következő szerketetű file (sok ezer sorral)
Zsuzsi Üdülőház
line_2:6145 Kiskunmajsa Petofi utca 45.
line_3:20/1111-326
line_4:Helyben
line_5:Szálláshely,Vendéglátás,Szabadidő
--
Bela kereskedohaz
line_2:6166 Kiskunmajsa Csillagos utca 48.
line_3:30-3487-526
line_4:Helyben
line_5:Szálláshely,*,*
--
A fennt látható szerkezet ismétlődik. Ebből szeretnék egy cvs file-t.
A csillagok hiányzó adatok helyén vannak.
Kb ilyenre szeretném.
Zsuzsi Üdülőház,6145 Kiskunmajsa Petofi utca 45.,20/1111-326,Helyben,Szálláshely, Vendéglátás, Szabadidő
Bela kereskedohaz,6166 Kiskunmajsa Csillagos utca 48.,Helyben,Szálláshely,*,*
Az egésznek az volna az értelme hogy libreoffic-ba (calc) táblázatként importálni tudjam.
köszönöm.
- 4519 megtekintés
Hozzászólások
Ránézésre például sed-del cserélj minden ^line_[[:digit:]]+: regexpre illeszkedést üresre, utána neline-okat vesszőre kell cserélni, aztán a -- sorokat newline-okra. Így kb.
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
Ezt gányoltam össze, bár lehet, hogy több sebből vérzik:
sed -r 's/^line_[[:digit:]]+://' t.txt | tr '\n' ',' | sed -r 's/--,/\n/g'
tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE
- A hozzászóláshoz be kell jelentkezni
köszönöm megnézem. Nekem tetszik :-)
- A hozzászóláshoz be kell jelentkezni
Gányolt, de legalább gyorsan kész van:
#!/bin/bash
cat a |while read i
do
if [ "${i}" = '--' ]
then
echo ${line#,}
line=''
else
line="${line},${i#line_?:}"
fi
done
:D
- A hozzászóláshoz be kell jelentkezni