열에서 반복되는 문자를 제거하는 방법은 무엇입니까?

열에서 반복되는 문자를 제거하는 방법은 무엇입니까?

나는 데이터를 가지고 있습니다 :

33305:1      0.045 
33406:1      0.432  
22294:1      0.345
28364:1      0.354

:1각 행의 첫 번째 열에서 삭제 하고 싶습니다 . 이를 위해 gsub를 사용해야 합니까?

답변1

:1필드 1의 싱글을 바꾸려면:

awk '{sub(":1", "", $1); print}' < input

필드 1에서 마지막 두 문자를 제거하려면 다음을 수행하십시오.

awk '{$1=substr($1, 1, length($1)-2); print}' < input

이것격자기능이 대체됩니다모든문자열의 인스턴스입니다. 예제 입력에는 해당 문자열이 하나만 있으므로 sub를 사용하는 것은 gsub를 사용하는 것과 같습니다.

답변2

귀하의 간단한 경우 -sed충분할 것입니다:

sed 's/:1//' file

답변3

with 하위 테마의 작은 변형 awk- :필드 구분 기호 로 사용되며 1 0.045열 2가 됩니다. 이제 주인공을 제거하기만 하면 됩니다.

$ awk -F':' '{sub(/^[[:digit:]]/," ",$2);print}' input.txt                  
33305        0.045 
33406        0.432  
22294        0.345
28364        0.354

관련 정보