내 perl 스크립트에 문제가 있습니다. 4 열의 input.txt 파일이 있고 두 번째 열의 각 줄에서 100을 빼고 세 번째 열의 각 줄에 100을 더하고 출력을 별도의 파일로 인쇄하려고합니다. 값을 얻을 수 있지만 한 열에 모든 값만 인쇄합니다.Perl을 사용하여 여러 열에서 산술 연산 및 출력 파일 출력
input.txt를 :
chr1 878656 878657 MACS_peak_1
chr1 912350 912351 MACS_peak_2
chr1 1624598 1624599 MACS_peak_3
chr1 1677888 1677889 MACS_peak_4
은 다음과 같습니다 그래서 내가 두 번째 열에서 100을 빼고 세 번째 열 (100)을 추가 할 :
chr1 878556 878757
chr1 912250 912451
chr1 1624498 1624699
chr1 1677788 1677989
나는 다음을 사용하고 스크립트. 산술은 괜찮지 만 화면에 인쇄 할 때마다 데이터 출력의 한 열만받습니다.
use warnings;
unless (open(FILE, "input.txt")){
print "cannot open file\n\n" ;
exit;
}
while (<FILE>) {
chomp($_);
{
@input = split(/\t/,$_);
@input1= split(/\t/,$input[1]);
@input2= split(/\t/,$input[2]);
$input1 = $input[1] - 100;
$input2 = $input[2] + 100;
{
print $input1,"\n"; print $input2,"\n";
}
}
}
close FILE ;
나는 awk로 그것을하는 방법을 알고 있지만 나는 이것에 아주 새로운 것을 배우려고 노력하고있다. 모든 제안과 설명은 매우 감사하게 생각합니다.
감사합니다, 해리엇
그리고'perl -MO = Deparse ..'도 마찬가지입니다. '\ n'과'$ \\'는 두 줄의 줄 바꿈을 제공합니다. –