공백으로 구분된 특정 필드를 연결합니다.

공백으로 구분된 특정 필드를 연결합니다.

공백으로 구분된 문자열이 있고 두 번째와 세 번째 "단어"/필드를 연결하여 여러 공백이 단어/필드를 구분하는 경우 올바르게 처리되도록 해야 합니다.
다음은 잘 작동합니다.

tr -s " " |cut -d ' ' -f2 -f3 | tr " " "-"  

이 작업을 수행하는 더 깨끗한 방법이 있는지 궁금합니다.

답변1

awk기본적으로 공백은 필드 구분 기호로 사용되므로 awk한 번의 호출로 문제를 해결할 수 있습니다.

awk '{ printf("%s-%s\n", $2, $3) }'

데이터가 전달되는 표준 입력입니다 awk.

셸에서 동일한 작업을 수행합니다(기본적으로 이전과 거의 동일한 방식으로 입력을 공백으로 분할함 awk).

read -r number first second therest
printf '%s-%s\n' "$first" "$second"

데이터가 전달되는 표준 입력입니다 read.

tr단지 and 를 사용하고 싶다면 cut이미 가장 컴팩트한 솔루션을 갖고 있다고 생각합니다.

관련 정보