sed
을 사용하여 파일을 편집 중이며 문제가 발생했습니다. sed 전문가가이를 해결할 수 있어야합니다.sed를 사용하여 비정형 파일 편집
제가
##INFO=<ID=EX_TARGET,Number=0,Type=Flag,Description="indicates whether a variant is within the exon pull down target boundaries">
##INFO=<ID=MULTI_ALLELIC,Number=0,Type=Flag,Description="indicates whether a site is multi-allelic">
##source_20160901.1=vcf-subset(r940) -f -c HG02291 /net/isilonP/public/rw/ensembl/1000genomes/release-17/tmp/slicer/1.1-1000000.ALL.chr1.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT HG02291
1 10177 rs367896724 A AC 100 PASS AA=1 GT 1|0
1 10235 rs540431307 T TA 100 PASS XX=5 GT 0|0
1 10352 rs555500075 T TA 100 PASS JJ=7 GT 0|1
이하 I 다음 명령
sed 's/.*##source_.*/\#\#INFO=\<ID=P_ID\,Number=1\,Type=String\,Description=\"Person Identifier\"\>\n&/' infile > outfile
을 사용하여 파일에 광고를 삽입과 같은 구조화/부분적 구조 파일을 가지고 출력은 다음과 같다
##INFO=<ID=EX_TARGET,Number=0,Type=Flag,Description="indicates whether a variant is within the exon pull down target boundaries">
##INFO=<ID=MULTI_ALLELIC,Number=0,Type=Flag,Description="indicates whether a site is multi-allelic">
##INFO=<ID=P_ID,Number=1,Type=String,Description="Patient Identifier">
##source_20160901.1=vcf-subset(r940) -f -c HG02291 /net/isilonP/public/rw/ensembl/1000genomes/release-17/tmp/slicer/1.1-1000000.ALL.chr1.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT HG02291
1 10177 rs367896724 A AC 100 PASS AA=1 GT 1|0
1 10235 rs540431307 T TA 100 PASS XX=5 GT 0|0
1 10352 rs555500075 T TA 100 PASS JJ=7 GT 0|1
nex 내가 가진, 지금까지
##INFO=<ID=EX_TARGET,Number=0,Type=Flag,Description="indicates whether a variant is within the exon pull down target boundaries">
##INFO=<ID=MULTI_ALLELIC,Number=0,Type=Flag,Description="indicates whether a site is multi-allelic">
##INFO=<ID=P_ID,Number=1,Type=String,Description="Patient Identifier">
##source_20160901.1=vcf-subset(r940) -f -c HG02291 /net/isilonP/public/rw/ensembl/1000genomes/release-17/tmp/slicer/1.1-1000000.ALL.chr1.phase3_shapeit2_mvncall_integrated_v5a.20130502.genotypes.vcf.gz
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT HG02291
1 10177 rs367896724 A AC 100 PASS AA=1;P_ID=12345 GT 1|0
1 10235 rs540431307 T TA 100 PASS XX=5;P_ID=12345 GT 0|0
1 10352 rs555500075 T TA 100 PASS JJ=7;P_ID=12345 GT 0|1
- 내가하고 싶은 t의 것은 JJ=7
출력은 같이해야 입력으로 위의 파일을 가지고 AA=1
입니다 열 여덟, XX=5
에 ;P_ID=12345
을 추가한다 열 8을 선택하도록 관리되었지만 정보를 추가 한 후 파일에 업데이트 된 줄을 다시 넣는 방법을 모르겠습니다.
sed -re '{s/^(\S+\s+){7}(\S+).*$/\2/;p}'
중 하나가 PLS 날이 퍼즐을 해결하는 데 도움이 수 - 나는 열 여덟을 선택하고 어떻게
이 무엇입니까?
미리 감사드립니다.
Prashant /tmp/so5.txt
이 입력 파일입니다
GNU sed의 옵션'-i'을 살펴보십시오. – Cyrus
#s 나
감사합니다. 나는 이것에 아주 새롭, 그러나 나는 sed/awk가 아주 강력한 편집자다는 것을 생각하고 나는 그 (것)들을 배우고 싶다. 현재 Hadoop/Spark와 같은 병렬 처리 기술이 더 많이 사용됩니다. awk + GNU Parallel에 대한 훌륭한 학습 자료가 있습니까? – PRP