我有一个由空格分隔的 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}'
orperl
的awk
模式 ( -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/'