如何排除打印最后一个字符

时间:2018-12-30 01:06:42

标签: 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之后打印“,”。如何避免最后一个逗号“,”

谢谢。

4 个答案:

答案 0 :(得分:1)

object = [{
  a: 1,
  b: 2,
  },
  {
    ...
  }];

但是,awk用于面向记录的处理。应该避免记录间的依赖关系-另一个工具可能比awk更适合您的需求。

答案 1 :(得分:1)

df1.index.name = 'Ticker' 
df2 = df1.reset_index().melt(id_vars='Ticker',var_name='Date') 

df2 = df2[df2.value == 1].set_index('Ticker').filter(['Date','Ticker']).sort_index()

答案 2 :(得分:0)

您可以尝试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

答案 3 :(得分:0)

另一个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

$