Awk 如何排除打印最后一个字符
我有一个名为sample.txt的文件,其中包含以下内容:Awk 如何排除打印最后一个字符,awk,Awk,我有一个名为sample.txt的文件,其中包含以下内容: Tom 24 Sam 56 Bob 49 使用AWK/GAWK,我希望输出为: Tom:24, Sam:56, Bob:49 当我跑的时候 awk '{print $1 ":"$2 "," }' sample.txt Tom:24, Sam:56, Bob:49, 它还打印最后一行中49之后的“.”。如何避免最后一个逗号“,” 谢谢。awk'{if(1
Tom 24
Sam 56
Bob 49
使用AWK/GAWK,我希望输出为:
Tom:24,
Sam:56,
Bob:49
当我跑的时候
awk '{print $1 ":"$2 "," }' sample.txt
Tom:24,
Sam:56,
Bob:49,
它还打印最后一行中49之后的“.”。如何避免最后一个逗号“,”
谢谢。awk'{if(1awk '{if (1 < NR) print previous ","; previous = $1 ":" $2 } END { print previous }' sample.txt
但是,awk用于面向记录的处理。应该避免记录之间的依赖关系—另一种工具可能比awk更适合您的需要。您可以尝试Perl
$ cat sam.txt
Tom 24
Sam 56
Bob 49
$ perl -a -ne ' $_="$F[0]:$F[1]"; print eof ? "$_\n":"$_,\n" ' sam.txt
Tom:24,
Sam:56,
Bob:49
如果您的文件可以放入内存,那么
$ perl -0777 -ne ' s/[ ]+/:/g; print join(",\n",split) ' sam.txt
Tom:24,
Sam:56,
Bob:49
另一个awk
awk ' { a[NR]=$1 ":" $2 } END { for(i=1;i<NR;i++) { print a[i] "," } print a[NR] } '
using the given inputs
$ cat sam.txt
Tom 24
Sam 56
Bob 49
$ awk ' { a[NR]=$1 ":" $2 } END { for(i=1;i<NR;i++) { print a[i] "," } print a[NR] } ' sam.txt
Tom:24,
Sam:56,
Bob:49
$
awk'{a[NR]=$1:“$2}END{for(i=1;i
awk ' { a[NR]=$1 ":" $2 } END { for(i=1;i<NR;i++) { print a[i] "," } print a[NR] } '
using the given inputs
$ cat sam.txt
Tom 24
Sam 56
Bob 49
$ awk ' { a[NR]=$1 ":" $2 } END { for(i=1;i<NR;i++) { print a[i] "," } print a[NR] } ' sam.txt
Tom:24,
Sam:56,
Bob:49
$