나는 이 유전자 데이터베이스를 가지고 있는데 영숫자가 아닌 추가 값으로 완전히 어수선합니다. 이는 불량 데이터를 암호화한 것이며 이를 정리하는 방법을 모르겠습니다. 시도했지만 sed
실패 awk
했습니다. 다음은 수많은 문서의 데이터 예입니다.
chr2#@!!~/\/=\^%$74711&&*&127472363@Pos1%%0^^+
chr3#@!!~/\/=\^%$74723&&*&127473530@Pos2%%0^^+
chr1#@!!~/\/=\^%$73530&&*&127474697@Pos3%%0^^+
chr2#@!!~/\/=\^%$17469&&*&127475864@Pos4%%0^^+
chr3#@!!~/\/=\^%$12747&&*&127477031@Neg1%%0^^-
chr5#@!!~/\/=\^%$17477&&*&127478198@Neg2%%0^^-
chr7#@!!~/\/=\^%$74781&&*&127479365@Neg3%%0^^-
chr7#@!!~/\/=\^%$74795&&*&127480532@Pos5%%0^^+
chr1#@!!~/\/=\^%$12748&&*&127481699@Neg4%%0^^-
정리된 데이터는 다음과 같아야 합니다.
chr2 74711 127472363 Pos1 0 +
chr3 74723 127473530 Pos2 0 +
chr1 73530 127474697 Pos3 0 +
chr2 17469 127475864 Pos4 0 +
chr3 12747 127477031 Neg1 0 -
chr5 17477 127478198 Neg2 0 -
chr7 74781 127479365 Neg3 0 -
chr7 74795 127480532 Pos5 0 +
chr1 12748 127481699 Neg4 0 -
어떻게 해야 하나요?
답변1
이 작업을 수행하는 데 사용할 수 있습니다 sed
. 일어난 일은 다음과 같습니다.
sed 's/[^a-zA-Z0-9+-]/ /g' file | column -tc2
chr2 74711 127472363 Pos1 0 +
chr3 74723 127473530 Pos2 0 +
chr1 73530 127474697 Pos3 0 +
chr2 17469 127475864 Pos4 0 +
chr3 12747 127477031 Neg1 0 -
chr5 17477 127478198 Neg2 0 -
chr7 74781 127479365 Neg3 0 -
chr7 74795 127480532 Pos5 0 +
chr1 12748 127481699 Neg4 0 -
답변2
를 사용하여 tr
원하는 세트의 보완 문자를 공백으로 음역하고 반복을 압축합니다.
$ tr -sc '[:alnum:][:space:]+-' ' ' < data
chr2 74711 127472363 Pos1 0 +
chr3 74723 127473530 Pos2 0 +
chr1 73530 127474697 Pos3 0 +
chr2 17469 127475864 Pos4 0 +
chr3 12747 127477031 Neg1 0 -
chr5 17477 127478198 Neg2 0 -
chr7 74781 127479365 Neg3 0 -
chr7 74795 127480532 Pos5 0 +
chr1 12748 127481699 Neg4 0 -
답변3
해결책awk
awk -F '[^[:alnum:]+-]+' '{$1=$1;print}' file