이전 질문을 확장하기 위해 다른 파일 패턴이 있고 seq1에서 seq20(seq1-seq20) 범위의 첫 번째 열 이름을 seq1로 변경하려고 합니다. 마찬가지로 범위는 seq21에서 seq60(seq21- seq60)을 seq2로 합니다. 파일명은 file.txt 이고 형식은 다음과 같습니다.
seq22 19301 20914 fill_color=green_a0
seq55 16726 18337 fill_color=green_a0
seq10 167934 169650 fill_color=green_a0
seq36 200621 202367 fill_color=red_a0
seq7 160164 161903 fill_color=green_a0
seq56 31356 33104 fill_color=green_a0
seq25 15030 16656 fill_color=green_a0
seq43 99693 101326 fill_color=red_a0
seq19 66168 67689 fill_color=green_a0
seq50 55955 57479 fill_color=green_a0
seq9 454456 456277 fill_color=green_a0
seq35 282633 284453 fill_color=green_a0
seq10 354264 355872 fill_color=green_a0
seq36 10125 11742 fill_color=red_a0
seq3 106668 110910 fill_color=green_a0
출력 파일은 다음과 같습니다
seq2 19301 20914 fill_color=green_a0
seq2 16726 18337 fill_color=green_a0
seq1 167934 169650 fill_color=green_a0
seq2 200621 202367 fill_color=red_a0
seq1 160164 161903 fill_color=green_a0
seq2 31356 33104 fill_color=green_a0
seq2 15030 16656 fill_color=green_a0
seq2 99693 101326 fill_color=red_a0
seq1 66168 67689 fill_color=green_a0
seq2 55955 57479 fill_color=green_a0
seq1 454456 456277 fill_color=green_a0
seq2 282633 284453 fill_color=green_a0
seq1 354264 355872 fill_color=green_a0
seq2 10125 11742 fill_color=red_a0
seq1 106668 110910 fill_color=green_a0
나는 이것을 시도했다
sed -e "s/seq[1:20]*/seq1/" -e "s/seq[21:60]*/seq2/" file.txt
그리고
awk 'NR>=seq1 && NR<=seq20{sub("seq*","seq1",$0)} 1' file.txt
답변1
나는 다음을 추천한다:
awk '{gsub(/[^0-9]/,"",$1); if($1+0<21){$1="seq1"} else {$1="seq2"}; print}' file
gsub(/[^0-9]/,"",$1)
숫자를 제외하고 첫 번째 열의 모든 항목을 삭제합니다.
답변2
귀하의 설명과 시도 모두 이상해 보이지만 입력과 원하는 출력을 고려하면 다음을 원한다고 생각합니다.
$ awk '(NR%2==1) ? $1="seq2" :$1="seq1"' file.txt
seq2 19301 20914 fill_color=green_a0
seq1 16726 18337 fill_color=green_a0
seq2 167934 169650 fill_color=green_a0
seq1 200621 202367 fill_color=red_a0
seq2 160164 161903 fill_color=green_a0
seq1 31356 33104 fill_color=green_a0
seq2 15030 16656 fill_color=green_a0
seq1 99693 101326 fill_color=red_a0
seq2 66168 67689 fill_color=green_a0
seq1 55955 57479 fill_color=green_a0
seq2 454456 456277 fill_color=green_a0
seq1 282633 284453 fill_color=green_a0
seq2 354264 355872 fill_color=green_a0
seq1 10125 11742 fill_color=red_a0
seq2 106668 110910 fill_color=green_a0