139개의 탭으로 구분된 파일이 있습니다 .txt
. .txt
해당 파일의 이름을 사용하여 각 파일에 열을 추가하고 마지막으로 모든 .txt 파일을 하나의 파일에 추가하고 싶습니다 . A.txt
, B.txt
, C.txt
파일이 있고 각 파일에 다음과 같은 열이 있습니다.
chrM 10458 C T
chrM 13960 C T
chrM 14173 T C
chr1 920552 G A
나는 다음과 같은 것이 필요합니다
A chrM 10458 C T
A chrM 13960 C T
A chrM 14173 T C
A chr1 920552 G A
B chr1 1350208 G A
B chr1 1447367 T G
B chr1 1909310 G A
B chr1 2172675 G C
C chr1 2846623 C T
C chr1 3057894 G A
C chr1 3096688 G C
C chr1 3154525 G A
나를 위해 그렇게 해줄 수 있나요?
감사해요
답변1
약간 grep
까다롭지만 . sed
접두사 파일 이름(".txt:")의 일부를 공백으로 바꿀 수 있습니다 .
grep . *.txt | sed 's/.txt:/ /g'
꽤 많은 CPU 사이클을 낭비하지만 원샷 타이머의 경우에는 문제가 되지 않으며 작업이 완료됩니다.
답변2
사용 awk
및 FILENAME
변수.
확장을 제거하려면 다음 gsub
기능을 사용할 수 있습니다.
awk -F'\t' 'BEGIN{OFS=FS}{gsub(/.txt$/,"",FILENAME); print FILENAME,$0}' *.txt
> MERGE.txt
결과를 새 텍스트 파일에 저장하려면 끝에 추가하세요 .