0

我有以下文件(典型 file.txt 的示例)

备注 - 参数长度不同

     param1=353
     param2=726
     param3=75.32
     param4=21.03
     number100=234
     arg1=100
     the_last_number=true
     x=55
     .
     .
     .

如何将 file.txt 转换为以下格式:(通过 printf 或其他可以成为我的 bash 脚本一部分的解决方案)

   1  param1.....................353
   2  param2.....................726
   3  param3.....................75.32
   4  param4.....................21.03
   5  number100..................234
   6  agr1.......................100
   7  the_last_number............true
   8  x..........................55
     .
     .
     .
4

3 回答 3

2
while read -r line
do
    printf '%s\n' "${line/=/........}"
done < inputfile
于 2012-06-16T20:41:39.710 回答
0

这应该有效。

SC=$(cat<<ENDDOC
if(~/(.*)=(.*)/){print "\$1"."."x(32-length(\$1))."\$2\n";}
else{print;}
ENDDOC)
perl -n -e "$SC" < file.txt
于 2012-06-16T21:15:33.107 回答
0

另一个:

no=0
fill='....................'                     # e.g. 20 points
while IFS='=': read left right ; do
  printf "%4d  %s%s%s\n" $((++no)) $left ${fill:${#left}} $right
done < "$infile"

输出:

   1  param1..............353
   2  param2..............726
   3  param3..............75.32
   4  param4..............21.03
   5  number100...........234
   6  arg1................100
   7  the_last_number.....true
   8  x...................55
于 2012-06-17T10:37:19.317 回答