【问题标题】:reserve space for a particular position in all rows of a file through unix shell script通过 unix shell 脚本为文件的所有行中的特定位置保留空间
【发布时间】:2014-09-08 19:52:40
【问题描述】:

我在一个文件中有一个学生列表,我想制作如下脚本:

student.txt
Rambavbusukhde
Shobit
Maa

下面是我准备的脚本:

cat student.txt |awk '{print "create synonym classa."$1 " for classb."$1";"}'

输出:

create synonym classa.Rambavbusukhde for classb.Rambavbusukhde;
create synonym classa.Shobit for classb.Shobit;
create synonym classa.Maa for classb.Maa; 

但我想将“for”一词之前的所有学生姓名保留为 30 个字符,以便输出如下所示:

create synonym classa.Rambavbusukhde for classb.Rambavbusukhde;
create synonym classa.Shobit         for classb.Shobit;
create synonym classa.Maa            for classb.Maa; 

注意:我无法显示名称和单词“for”之间的空格。所有“for”都应该只在一行中查找

【问题讨论】:

    标签: bash shell unix awk scripting


    【解决方案1】:

    你可以使用 awk 的 printf 语句来提供格式化"

    awk '{printf "create synonym classa.%-30s for classb.%s;\n",$1,$1}' student.txt
    

    【讨论】:

      【解决方案2】:

      只需将 awk 命令的输出传递给column -t 命令,

      $ awk '{print "create synonym classa."$1 " for classb."$1";"}' file | column -t
      create  synonym  classa.Rambavbusukhde  for  classb.Rambavbusukhde;
      create  synonym  classa.Shobit          for  classb.Shobit;
      create  synonym  classa.Maa             for  classb.Maa;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-11
        • 2013-03-13
        • 1970-01-01
        • 1970-01-01
        • 2013-09-21
        相关资源
        最近更新 更多