- Транспонирование текста с учетом разделителя (sed, awk, ..), михалыч, 11:35 , 11-Май-14 (1)
#!/usr/bin/perl$text = shift @ARGV; $i = -1; open FH, $text or die "can't open $text: $!\n"; while (<FH>) { chomp; next if /\^$/; $i++ if /TABEL_ID/; split ";"; push @{$arr[$i]}, $_[1]; } close FH; for (@arr) { print "TABEL_ID;CUSTOM_ID;PERSSEX;LASTNAME;FIRSTNAME;MIDDLENAME;TITLE;CONTACT_UNID;PHONE_MOBILE;EMAIL\n"; print join (";", @{$_}), "\n"; } Запускать так: ./script.pl /path/to/text.file на awk мастер меча (читай Andrey Mitrofanov) могёт.. или может ))
- Транспонирование текста с учетом разделителя (sed, awk, ..), тень_pavel_simple, 12:03 , 11-Май-14 (2)
>[оверквотинг удален] > split ";"; > push @{$arr[$i]}, $_[1]; > } > close FH; > for (@arr) { > print "TABEL_ID;CUSTOM_ID;PERSSEX;LASTNAME;FIRSTNAME;MIDDLENAME;TITLE;CONTACT_UNID;PHONE_MOBILE;EMAIL\n"; > print join (";", @{$_}), "\n"; > } > Запускать так: ./script.pl /path/to/text.file > на awk мастер меча (читай Andrey Mitrofanov) могёт.. или может )) http://www.gnu.org/software/gawk/manual/html_node/Multiple-L...
- Транспонирование текста с учетом разделителя (sed, awk, ..), михалыч, 20:29 , 11-Май-14 (3)
cat text | grep -v '\^' | awk -F ";" '{ORS=";"} /EMAIL/ {ORS="\nTABEL_ID;CUSTOM_ID;PERSSEX;LASTNAME;FIRSTNAME;MIDDLENAME;TITLE;CONTACT_UNID;PHONE_MOBILE;EMAIL\n"} {print $2}' | awk 'BEGIN {FS="\n"; RS=""; OFS=""} {for (i=NF; i>0; i--) print $i;}'последовательность строк с данными будет с конца, но если не принципиально, то как вариант
- Транспонирование текста с учетом разделителя (sed, awk, ..), Andrey Mitrofanov, 12:18 , 25-Май-14 (7)
Не ждали? :*D> cat text | grep -v '\^' | awk -F ";" '{ORS=";"} /EMAIL/ Эх, молодёж-ж-жь! Тема gawk/Multiple-Line.html не раскрыта. $ <text gawk -F'\n' -v RS=^ '{a=b="";for(i=1;i<=NF;i++){if(split($i,aa,";")>1){a=(a?a";":"")""aa[1];b=(b?b";":"")""aa[2]}}if(a""b){print a;print b}}' TABEL_ID;CUSTOM_ID;PERSSEX;LASTNAME;FIRSTNAME;MIDDLENAME;TITLE;CONTACT_UNID;PHONE_MOBILE;EMAIL 25235;3456436;M;Петров;Василий;Андреевич;Руководитель;34636474575468586;+456457567;petro@mail.ru TABEL_ID;CUSTOM_ID;PERSSEX;LASTNAME;FIRSTNAME;MIDDLENAME;TITLE;CONTACT_UNID;PHONE_MOBILE;EMAIL 534636;4363467347;M;Васильев;Игорь;Петрович;Менеджер;457677567658;+456457567;vasya@mail.ru $ _
- Транспонирование текста с учетом разделителя (sed, awk, ..), михалыч, 05:36 , 27-Май-14 (9)
ахренеть, шикарно.. )) а я сразу сказал - надо звать мастера, он сделает красиво
- Транспонирование текста с учетом разделителя (sed, awk, ..), Andrey Mitrofanov, 11:32 , 27-Май-14 (11)
> а я сразу сказал - надо звать мастера, он сделает красиво После 25 строк #!/usr/bin/perl -- это не сразу. Честно, только сейчас схидил и прочитал. Впрочем, эти самые 25 строк, ставшие ниже 15-ью, "позвали в дорогу" :D не хуже.
- Транспонирование текста с учетом разделителя (sed, awk, ..), михалыч, 07:33 , 27-Май-14 (10)
а подмету-ка я, пожалуй, мусор, в своём перловом скрипте, а то как-то неприлично даже ))
#!/usr/bin/perl$text = shift @ARGV; open FH, $text or die "can't open $text: $!\n"; while (<FH>) { chomp; if (/\^$/) {$i++; next;} split ";"; push @{$name[$i]}, $_[0]; push @{$data[$i]}, $_[1]; } close FH; for ($j=0; $j<@name; $j++) { print join (";", @{$name[$j]}), "\n"; print join (";", @{$data[$j]}), "\n"; } это, конечно, не так изящно, но лучше, чем было )
- Транспонирование текста с учетом разделителя (sed, awk, ..), Андрей, 21:11 , 11-Май-14 (4)
Спасибо большое за помощь. Попробую разобраться в предложенных скриптах. Опыта пока мало, надеюсь, осилю.
- Транспонирование текста с учетом разделителя (sed, awk, ..), михалыч, 03:58 , 12-Май-14 (5)
> Спасибо большое за помощь. > Попробую разобраться в предложенных скриптах. Опыта пока мало, надеюсь, осилю.вот так будет правильнее, меняет чёт/нечёт местами cat text | grep -v '\^' | awk -F ";" '{ORS=";"} /EMAIL/ {ORS="\nTABEL_ID;CUSTOM_ID;PERSSEX;LASTNAME;FIRSTNAME;MIDDLENAME;TITLE;CONTACT_UNID;PHONE_MOBILE;EMAIL\n"} {print $2}' | awk 'NR%2==0 {print $0; print p} {p=$0}' в предыдущем варианте был просто реверси строк если хочешь что-то сделать - сделай это сам, если хочешь что-то сделать хорошо - сделай это сам хорошо ))
- Транспонирование текста с учетом разделителя (sed, awk, ..), pavlinux, 19:25 , 24-Май-14 (6)
> Здравствуйте. > Подскажите.# apt-get install sc # psc -r < TEXT.txt | sc -W% -
|