Awk

如何將字元串附加到每個單元格(使用awk)?

  • June 26, 2021

這是 的輸出cal<SPACE>向每個單元格附加附加內容的最簡單方法是什麼?

    June 2021        
Su Mo Tu We Th Fr Sa  
      1  2  3  4  5  
6  7  8  9 10 11 12  
13 14 15 16 17 18 19  
20 21 22 23 24 25 26  
27 28 29 30

預期結果:

    June 2021
Su  Mo  Tu  We  Th  Fr  Sa
        1   2   3   4   5
6   7   8   9  10  11  12
13  14  15  16  17  18  19
20  21  22  23  24  25  26
27  28  29  30

使用awk

$ cal | awk '{ gsub(/[^ ] |   /, "& ") }1'

或使用sed

$ cal | sed -E 's/[^ ] |   /& /g'
     June  2021
Su  Mo  Tu  We  Th  Fr  Sa
        1   2   3   4   5
6   7   8   9  10  11  12
13  14  15  16  17  18  19
20  21  22  23  24  25  26
27  28  29  30

這可能是你想要做的:

$ cal | awk 'NR>1{gsub(/.../,"& ")}1'
     June 2021
Su  Mo  Tu  We  Th  Fr  Sa
        1   2   3   4   5
6   7   8   9  10  11  12
13  14  15  16  17  18  19
20  21  22  23  24  25  26
27  28  29  30

請注意,它不會在每行末尾的“單元格”中添加一個空白,也不會在月+年行的“單元格”之後添加一個額外的空白。

引用自:https://unix.stackexchange.com/questions/655648