连接字段并删除一行中的尾随空格

连接字段并删除一行中的尾随空格

我有一个由空格分隔的 3 个字段的字符串。我想连接最后两个字段,并-确保最后的换行符被删除。

以下作品:

echo -n "abc 1234 5679" | tr -s "" |cut -d ' ' -f2 -f3 | tr " " "-"  

我想知道有没有perl在线的人可以做这个?

答案1

使用awk

printf 'abc 1234 5679' | awk '{printf "%s", $2"-"$3}'

orperlawk模式 ( -a):

printf 'abc 1234 5679' | perl -ape '$_ = "$F[1]-$F[2]"'

请注意,如果存在行分隔符,两者都会删除它,如果您想保留它,则使用 GNU awk

printf 'abc 1234 5679\n' | gawk '{printf "%s", $2"-"$3 RT}'

perl

printf 'abc 1234 5679\n' | perl -ape 's/.*/$F[1]-$F[2]/'

答案2

用这个 :

$ echo -n "abc 1234 5679" | perl -pe 's/(\d+)\s+(\d+)$/$1-$2/' 

相关内容