[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Sed: Una e una solo!



Davide Prina scrisse in data 10/06/2014 20:25:

On 10/06/2014 10:50, antispammbox-debian wrote:


se ogni record è per posizione: cioè il campo A è di 5 caratteri e inizia
nella posizione X1, mentre il campo B è di 5 caratteri e inizia alla
posizione X2... allora:

$ echo "DDDDD   KKKKK   AAAAA    BBBBB" | \
   sed "s/.\{16\}\(.\{5\}\).\{4\}\(.\{5\}\)/\1\n\2/"

> Purtròppo il campo 1 può èssere da 1 o 3 caratteri max.

Tra i vari campi c'è sempre 1 spazio, quindi questo potrebbe rendere le
cose méno complicate?

se i campi sono di dimensione variabile e gli spazi sono solo separatori, allora

$ echo "DDDDD   KKKKK   AAAAA    BBBBB" |   \
  sed "s/[^ ]* *[^ ]* *\([^ ]*\)[ ]*\([^ ]*\)/\1\n\2/"
che più in generale se la separazione potrebbe essere spazio o tabulazione è esattamente la stessa formula che avevo già postato qualche giorno fa:

echo DDDDD KKKKK AAAAA BBBBB | sed -n 's/[^[:space:]]\+[[:space:]]*[^[:space:]]\+[[:space:]]*\([^[:space:]]\+\)[[:space:]]*\([^[:space:]]\+\)[[:space:]]*$/\1 \2/p'

Piviul


Reply to: