헤드 테스트 영역.베드
21 15390708
21 15890068 16388793
21 16390041 16888505
21 16889055 17388185
21 17388731 17886839
.bed 파일의 각 줄을 출력 이름으로 사용하고 싶습니다. 예를 들면 다음과 같습니다.
while readline
do zip.sh > 21_15390708_ 15889554.zip
21_16390041-16888505.zip
xargs가 이 작업을 수행할 수 있다는 내용을 읽었습니다. 그러나 각 줄을 고유한 출력 파일 이름으로 출력하는 방법이 혼란스럽습니다.
xargs -a testregions.bed -I {} zip inputfile {} >> outputfile_{}.zip
등. 어떤 도움이라도 대단히 감사하겠습니다.
답변1
다음은 다음과 같이 사용할 수 있는 이해하기 쉬운 방법입니다 testregions.bed
. 먼저 원본 파일에서 공백을 모두 제거한 testregions.bed
다음 숫자만 새 파일에 저장합니다 .new.txt
cat testregions.bed | tr -d "[:blank:]" > new.txt
그런 다음 다음과 같이 각 줄에 대해 새 파일을 만듭니다 new.txt
.
cat new.txt | while read line do touch "$line".zip done
그런 다음 다음을 삭제할 수 있습니다 new.txt
.
rm new.txt
test.sh
따라서 .zip
파일을 생성하는 스크립트는 testregions.bed
다음과 같습니다.
#!/bin/sh
cat testregions.bed | tr -d "[:blank"]" > new.txt
cat new.txt | while read line
do
touch "$line".zip
done
rm new