공백으로 구분된 문자열이 있고 두 번째와 세 번째 "단어"/필드를 연결하여 여러 공백이 단어/필드를 구분하는 경우 올바르게 처리되도록 해야 합니다.
다음은 잘 작동합니다.
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
이미 가장 컴팩트한 솔루션을 갖고 있다고 생각합니다.