连接由空格分隔的特定字段

连接由空格分隔的特定字段

我有一个由空格分隔的字符串,我需要连接第二个和第三个“单词”/字段,确保如果多个空格分隔单词/字段,则可以正确处理。
以下工作正常:

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

我想知道是否有更简洁的方法来做到这一点?

答案1

awk默认情况下将使用任意数量的空格作为字段分隔符,因此您的问题可以通过单次awk调用来解决

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

数据传递到 的标准输入awk

在 shell 中执行相同的操作(默认情况下,它也会以与之前几乎相同的方式在空格上分割输入awk):

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

数据传递到 的标准输入read

如果您只想使用trand cut,我相信您已经拥有最紧凑的解决方案。

相关内容