특정 문자 앞과 뒤의 문자 유지

특정 문자 앞과 뒤의 문자 유지

특정 문자(이 경우 _) 앞뒤의 문자를 보존하고 싶습니다. cut과 sed를 시도했는데 문자 앞이나 뒤 부분을 삭제했습니다.

내 출력은 다음과 같습니다

7_38    98.97
7_37    98.59
7_36    98.79
7_35    98.93
7_34    98.57
7_33    99.70
7_32    99.13

"_" 뒤의 숫자를 제거하고 두 번째 열을 다음과 같이 출력으로 유지하고 싶습니다.

7   98.97
7   98.59
7   98.79
7   98.93
7   98.57
7   99.70
7   99.13

답변1

_그 뒤에 공백이 아닌 모든 문자를 제거하려는 것 같습니다 .

sed 's/_[^[:blank:]]*//' < file

답변2

awk를 사용해 보셨나요? 이렇게 하면 가고 싶은 곳으로 갈 수 있습니다.

awk '/_/ {gsub("_.*","",$1); print}' < input.txt

답변3

awk를 사용하세요아들기능:

awk '{ sub("_.*","",$1) }1' OFS='\t' file

산출:

7   98.97
7   98.59
7   98.79
7   98.93
7   98.57
7   99.70
7   99.13

답변4

여러 문자를 필드 구분 기호(공백 및 밑줄)로 사용하고 필드 1과 3만 인쇄할 수 있습니다.

awk -F'_| +' '{print($1,$3)}' file

관련 정보