LINUX.ORG.RU

Обрабатываем списки в PERL


0

0

есть 2 файла, состоящих из строк. Как сделать чтобы при совпадении строки из первого файла со строкой из второго файла, в первый файл к строке добавлялся комментарий? Благодарю заранее!!!

anonymous

#!/usr/bin/perl
use strict;

{
	open IN,$ARGV[1];
	my $hash;
	while (<IN>) {
		chomp;
		$hash->{$_}=1;
	}
	close IN;
	rename($ARGV[0],$ARGV[0].".old");
	open IN,$ARGV[0].".old";
	open OUT,">".$ARGV[0];
	while (<IN>) {
		chomp;
		if ($href->{$_}) {
			print OUT $_."# My comment\n";
		} else {
			print OUT $_."\n";
		}
	}
	close OUT;
}

vahvarh ★★★
()
Ответ на: комментарий от anonymous

шелл рулит неподецки. на шелле всего 4 строчки:

{ nl -ba -nln file1; nl -ba -nln file2; } | sort > ss

uniq ss | diff ss - | grep '^<' | cut -f1 | cut -d' ' -f2 > ln

{ echo -n \\\(^fake; cat ln | xargs -n1 echo -n "\#\)\|\(^ *"; echo \#\\\); } > smart_regexp

cat file1 | nl -ba -w7 -s'#' | sed s/"$(< smart_regexp)"/"==\> \#"/ | sed "s/^ *[0123456789]*\#/ \#/" > commented_code

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

Спасибо! Но необходимо решение на PERL, которое в принципе я уже нашел. Но все равно спасибо!

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.