한 줄에 chr과 값이있는 10000 개 이상의 줄이있는 텍스트 파일이 있습니다. 프로그램을 실행하려면이 정보가 필요합니다 ( TOOL
아래 참조). 텍스트 파일 mylist19.list
은 다음과 같습니다.
chr1 1 12
chr1 14 34
chr1 44 65
chr1 48 88
chr1 88 93
chr1 122 144
나는 이것을 99 줄의 배치로 실행하고 싶다. 그래서 이것이 내가 한 일입니다.
file="/scratch/mylist19.list"
start=1
diff=99
LASTline=$(cat $file | wc -l)
while [ ${start} -le ${LASTline} ]; do
CHUNK=sed -n `expr ${start},${diff}p` ${file}
echo ${CHUNK}
#TOOL --use ${CHUNK}
start=$((${start}+${diff}))
done < ${file}
그렇다면 명령 에서 사용할 수 있도록 sed -n expr ${start},${diff}p;${LASTline}q ${file}
in 의 출력을 어떻게 저장 합니까? 또한 마지막 청크 에 포함 하고 싶습니다 .CHUNK
TOOL
$LASTline
확실하지 sed
않지만 bash
여기에 태그가 지정되어 있기 때문에 sed
원하는 것을 수행 할 수 없는 솔루션 이 있습니다.
#!/usr/bin/env bash
diff=99
file="/scratch/mylist19.list"
while mapfile -n "$diff" -t array && (( ${#array[*]} )); do
chunk=("${array[@]}" "$file")
echo "${chunk[@]}"
echo tool --use "${chunk[@]}"
done < "$file"
또한 마지막 청크에 $ LASTline을 포함하고 싶습니다.
같은 것
#!/usr/bin/env bash
diff=99
file="/scratch/mylist19.list"
total=$(wc -l < "$file")
while mapfile -n "$diff" -t array && (( ${#array[*]} )); do
(( count += ${#array[*]} ))
if (( total != count )); then
chunk=("${array[@]}" "$file")
else
chunk=("${array[@]}" "$file" "$total")
fi
echo "${chunk[@]}"
echo tool --use "${chunk[@]}"
done < "$file"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다