열에서 공백을 제거하는 방법은 무엇입니까?

열에서 공백을 제거하는 방법은 무엇입니까?

파일의 특정 열을 필터링하고 싶은데46총. 난 그냥부터 시작하고 싶어25~까지46, 다음 방법으로:

원하는 출력:

Column25 Column26 ... Column47
Column25 Column26 ... Column47
Column25 Column26 ... Column47

올바른 awk 명령이 있습니다.

cat -n <(awk '{n=17;if(NR==1)n=25;for(i=n;i<=NF;i++) a[$i]++} END{for(val in a) print val,a[val]}' filelog.txt)

위의 명령은 다음에서 가져온 것입니다.25이 경우 마지막 열까지47. 내가 원하는 모든 필드의 모든 문자열을 인쇄하면서 잘 작동합니다.


하지만 여기에 문제가 있습니다.

인쇄하려는 열은 다음과 같습니다.공간다음 방법과 같습니다.

Column25 Column26     ...    Column47
Column25 Column26    [...]   Column47
[:space:]Column26  [:space:] Column47
[:space:][:space:] [:space:] [:space:]
Column25 [:space:] [:space:] [:space:]

문제는 다음과 같습니다특정 열을 모두 인쇄하면 다른 열의 문자열이 공백과 함께 원하는 열로 전달됩니다.

예를 들어:

Column25           Column26             ...          Column47
Column25           Stringsofcolumn12  Manystrings Stringsofcolumn21
Stringsofcolumn23  Stringsofcolumn5   ofmanycolumns Stringsofcolumn22
Column25           Stringsofcolumn16  blablabla    anothermanystrings

이 문제를 방지하기 위해 인쇄하려는 열의 공백을 제거할 수 있는 방법이 있습니까?


노트:

열의 문자열은 헤더의 텍스트와 동일합니다. 예: column28콘텐츠 문자열이 있는 경우 문자열은 column28리터럴입니다. 하지만 지금은 그게 중요하지 않다고 생각합니다. 단지 코멘트일 뿐입니다.

감사합니다!

답변1

너가 원하는게 그거야?

cat thefile | tr '\t' ' '| tr -s " " | cut -d' ' -f25-46 

문제가 해결되면 정답으로 표시해 주세요.

관련 정보