두 번째 밑줄(밑줄 자체 포함) 뒤의 모든 텍스트를 제거하고 싶지만 모든 줄을 제거하고 싶지는 않습니다. 각 대상 행은 패턴(>gi_)으로 시작됩니다.
예.
입력하다
>gi_12_pork_cat
ACGT
>gi_34_pink_blue
CGTA
산출
>gi_12
ACGT
>gi_34
CGTA
답변1
우리 중 게으른 사람들을 위해:
cut -d_ -f1,2 input
우리에게 줘:
bash-[514]$ cat input
>gi_12_pork_cat
ACGT
>gi_34_pink_blue
CGTA
bash-[515]$ cut -d_ -f1,2 input
>gi_12
ACGT
>gi_34
CGTA
답변2
다음과 같은 속기도 사용됩니다 awk
.
awk -F_ '{print $1 (NF>1? FS $2 : "")}' yourfile
답변3
$ awk -F_ 'BEGIN {OFS="_"} /^>gi/ {print $1,$2} ! /^>gi/ {print}' input
>gi_12
ACGT
>gi_34
CGTA
답변4
sed -ne '/^>gi_/s/_/\n/2;P' yourfile
설명하다
- 문자열로 시작하는 줄에 대해서만
>gi_
sub 에 영향을 주려고 합니다_ ---> \n
. 그런 다음P
개행 문자 하나 또는 전체가 발견되면 첫 번째 개행 문자까지 인쇄하는 명령을 사용하여 패턴 공간을 인쇄합니다 .